{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# 针对Stable Diffusion-XL的prompt优化\n",
    "\n",
    "* Stable Diffusion-XL(以下简称“SD-XL”)是当下最常用的文生图扩散模型。本文将介绍如何利用prompt优化Stable Diffusion-XL的生成效果。\n",
    "* 本篇Cookbook分为两个部分：\n",
    "  * 第一部分通过两个常见的prompt场景案例，带您快速上手我们的优化方法。\n",
    "  * 第二部分通过基于中文应用场景的测试，验证了我们的优化方法的可行性和有效性。"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 安装&导入依赖库"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "首先，安装评估部分所需要的所有包"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "!pip install -r requirement.txt"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "引入我们需要的所有包，加载Pickscore的模型："
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 42,
   "metadata": {},
   "outputs": [],
   "source": [
    "import os,io,qianfan,torch,statistics\n",
    "import ae_score\n",
    "import matplotlib.pyplot as plt\n",
    "import numpy as np\n",
    "from PIL import Image\n",
    "import seaborn as sns\n",
    "from glob import glob\n",
    "from qianfan.common import Prompt\n",
    "from qianfan import Text2Image,Completion\n",
    "from tools import prompt_update\n",
    "from tools import t2i\n",
    "from tools import generate_and_save\n",
    "from transformers import AutoProcessor, AutoModel\n",
    "from matplotlib.ticker import MaxNLocator\n",
    "\n",
    "\n",
    "# 定义文件路径\n",
    "infer_py_path = 'Pickscore-main/infer.py'\n",
    "raw_folder = 'raw'\n",
    "update_folder = 'update'\n",
    "# 将 infer.py 作为模块导入\n",
    "import sys\n",
    "sys.path.append(os.path.dirname(infer_py_path))\n",
    "from infer import calc_probs"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "在此处输入您的鉴权信息"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 35,
   "metadata": {},
   "outputs": [],
   "source": [
    "#初始化百度智能云的IAM ak, sk用于bos和千帆平台的鉴权\n",
    "os.environ['QIANFAN_ACCESS_KEY'] = 'your_access_key'\n",
    "os.environ['QIANFAN_SECRET_KEY'] = 'your_secret_key'"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 案例一：针对中文特异词汇的优化--夫妻肺片\n",
    "* 夫妻肺片是一道经典的中国小吃，但是对于Stable-Diffusion来说可能是一种动物的器官，我们的prompt优化可以避免这样的错误。\n",
    "* 这里以“夫妻肺片”为例，来展示我们的prompt优化针对中文歧义词的效果。\n",
    "\n",
    "首先我们先创建一个简单的任务描述prompt:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {},
   "outputs": [],
   "source": [
    "pt = \"夫妻肺片\"\n",
    "#将文本转为LLM的prompt格式\n",
    "p = Prompt(pt)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "使用优化前的prompt测试效果"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {},
   "outputs": [],
   "source": [
    "#加载SD-XL并展示生成结果\n",
    "t2i(pt)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "可以看到，SD-XL对于输入的prompt产生了误解，仅仅理解了字面意思，生成了器官的图片。\n",
    "![alt text](img/lung_raw.png)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "接下来，将上述prompt进行优化，提升图片的生成效果:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "A plate of Spicy Beef Slices with Beef Offal, drenched in chili oil, loaded with cilantro and peanuts, intricate textures, realistic texture details, bright colors, food photography, high contrast lighting, vibrant colors, appetizing, photorealistic, (detailed texture:1.3), high resolution, 8k, HDR, natural lighting\n",
      "\n",
      "Negative prompt: text, logos, watermarks, out of frame, blurred, low contrast, messy, artificial lighting, discolored.\n"
     ]
    }
   ],
   "source": [
    "#将输入prompt进行优化\n",
    "output = prompt_update(pt)\n"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "以下为优化prompt的生成效果展示："
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {},
   "outputs": [],
   "source": [
    "#加载SD-XL并展示生成结果\n",
    "t2i(output)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "在优化了prompt后，生成的图片解决了中英文的语言歧义，符合prompt的原意，而且提升了展示力。"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "![alt text](img/lung_update.png)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 案例二：针对简单提示词的扩写优化--一只高贵的柯基犬\n",
    "* 还有一类prompt，它们在理解上并没有歧义，但是包含的细节极少，无法给到足够的提示，可能会导致生成效果不佳。\n",
    "* 这里我们以\"一只高贵的柯基犬\"的任务为例，来展示我们的prompt优化针对扩展提示词的效果。\n",
    "\n",
    "首先我们先创建一个简单的任务描述prompt:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 32,
   "metadata": {},
   "outputs": [],
   "source": [
    "pt = \"一只高贵的柯基犬\"\n",
    "#将文本转为LLM的prompt格式\n",
    "p = Prompt(pt)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "使用优化前的prompt测试效果"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "metadata": {},
   "outputs": [],
   "source": [
    "#加载SD-XL并展示生成结果\n",
    "t2i(pt)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "生成的图片大体符合提示词，但是细节缺失较多，整体画面不够生动。"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "![alt text](img/dog_raw.png)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "\n",
    "\n",
    "接下来，将上述prompt进行优化，提升图片的生成效果:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 33,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "a regal Corgi, wearing a fancy collar and bowtie, elegant pose, soft fur, photorealistic, vibrant colors, detailed landscape, studio lighting, highly detailed, realistic shadows, HDR, (detailed fur:1.3), 8k\n",
      "\n",
      "Negative prompt: text, logos, watermarks, out of frame, messy, blurry, mutated, deformed features, cartoon\n"
     ]
    }
   ],
   "source": [
    "#将输入prompt进行优化\n",
    "output = prompt_update(pt)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "\n",
    "\n",
    "以下为优化prompt的生成效果展示："
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "metadata": {},
   "outputs": [],
   "source": [
    "t2i(output)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "图片的画面整体提升很大，将柯基犬的主体描绘得更加细致，整体构图更加协调，表现力更强。"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "![alt text](img/dog_update.png)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 验证\n",
    "\n",
    "* 为体现本方案的优化能力，在此使用了Pick Score和Aesthetics Score作为评价指标，以此验证可行性。\n",
    "* Pick Score: 衡量了初始的输入prompt和优化后的图片之间的关联度。用此指标来体现我们的优化没有偏出用户的主观意图。\n",
    "* Aesthetics Score: 衡量了优化后的图片的美观度。用此指标来衡量优化后的图片是否符合用户的审美需求。\n",
    "\n"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 测试集准备"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "根据DiffusionDB的数据集，我们构造了一个简单的中文prompt列表以供测试："
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 35,
   "metadata": {},
   "outputs": [],
   "source": [
    "#中文prompt用于生成优化前的图片以及aesthestics score打分\n",
    "raw_prompt = [\n",
    "    \"黄昏谷仓画\", \"绿树成荫，花团锦簇\",\"翱翔在山间的凤凰\",\"宫保鸡丁\",\"一个摆满玩具机器人的房间\",\"一座有许多雕像在里面的丛林寺庙\",\"两匹马的黑白照片\",\"一座庞大的宫殿,皇帝坐在正中央,大臣们骑着扫帚在殿内朝拜,有的大臣在汇报工作,整个大殿金碧辉煌\",\"一只可爱的小猫\",\"一座哥特式建筑\",\"一对肝胆相照的兄弟\",\"一只蜗牛\",\n",
    "    \"一个挑灯夜读的高中生,他坐在电脑桌前\",\"咖啡色的天空，绿色的湖，蓝色的草地\",\"神圣的金字塔，门口坐着狮身人面像\",\"两只猫鼬在野外和热气球在一起\",\"一幅描绘白裙少女在雏菊田中翩翩起舞的画作\",\"春天来了，万物复苏\",\"火光冲天的未来飞船\",\"一条狗，一只猫，耶稣在中间照顾所有的生物，有人，有植物\",\"蚂蚁上树\",\"夫妻肺片\",\"一只飞过山的凤凰\",\"机器人大战\",\"虫虫危机\"\n",
    "]\n",
    "#英文prompt用于pickscore打分\n",
    "raw_prompt_eng = [\n",
    "    \"Twilight Barn Painting\", \n",
    "    \"Shady Green Trees and Blooming Flowers\", \n",
    "    \"The phoenix that soars in the mountains\", \n",
    "    \"Kung Pao Chicken\", \n",
    "    \"A Room Filled with Toy Robots\", \n",
    "    \"A Jungle Temple with Many Statues Inside\", \n",
    "    \"Black and White Photo of Two Horses\", \n",
    "    \"A Grand Palace with the Emperor in the Center, Ministers on Brooms Paying Homage, Some Reporting Work, the Entire Hall Gleaming with Gold\", \n",
    "    \"A Cute Kitten\", \n",
    "    \"A Gothic Building\", \n",
    "    \"Two Brothers with Deep Bonds\", \n",
    "    \"A Snail\", \n",
    "    \"A High School Student Studying Late at Night at a Computer Desk\", \n",
    "    \"Coffee-Colored Sky, Green Lake, Blue Grass\", \n",
    "    \"Sacred Pyramid with a Sphinx at the Entrance\", \n",
    "    \"Two Meerkats in the Wild with a Hot Air Balloon\", \n",
    "    \"A Painting of a Girl in a White Dress Dancing in a Daisy Field\", \n",
    "    \"Spring Arrives, Everything Awakens\", \n",
    "    \"A Futuristic Spaceship with Flames Bursting\", \n",
    "    \"A Dog, a Cat, and Jesus Caring for All Creatures, Including People and Plants\", \n",
    "    \"Stir-Fried Noodles with Minced Pork\", \n",
    "    \"Spicy Sliced Beef and Tripe\", \n",
    "    \"A Phoenix Flying Over a Mountain\", \n",
    "    \"Robot Battle\", \n",
    "    \"A Bug's Life\"\n",
    "]\n"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "首先，将优化前的prompt对应图片保存到自定义的文件夹中"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 20,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Image 0 saved as raw/0.png\n",
      "Image 1 saved as raw/1.png\n",
      "Image 2 saved as raw/2.png\n",
      "Image 3 saved as raw/3.png\n",
      "Image 4 saved as raw/4.png\n",
      "Image 5 saved as raw/5.png\n",
      "Image 6 saved as raw/6.png\n",
      "Image 7 saved as raw/7.png\n",
      "Image 8 saved as raw/8.png\n",
      "Image 9 saved as raw/9.png\n",
      "Image 10 saved as raw/10.png\n",
      "Image 11 saved as raw/11.png\n",
      "Image 12 saved as raw/12.png\n",
      "Image 13 saved as raw/13.png\n",
      "Image 14 saved as raw/14.png\n",
      "Image 15 saved as raw/15.png\n",
      "Image 16 saved as raw/16.png\n",
      "Image 17 saved as raw/17.png\n",
      "Image 18 saved as raw/18.png\n",
      "Image 19 saved as raw/19.png\n",
      "Image 20 saved as raw/20.png\n",
      "Image 21 saved as raw/21.png\n",
      "Image 22 saved as raw/22.png\n",
      "Image 23 saved as raw/23.png\n",
      "Image 24 saved as raw/24.png\n"
     ]
    }
   ],
   "source": [
    "#将raw_prompt输入到SD-XL,生成图片并保存到当前目录下的raw文件夹\n",
    "generate_and_save(raw_prompt, \"raw\")"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "将输入的prompt进行批量优化"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 21,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "A rustic barn in a serene valley at dusk, golden hour lighting, warm orange and purple hues, silhouette of trees in the distance, soft light streaming through cracks in the wooden walls, intricate details of weathered wood, (rustic atmosphere: 1.5), photorealistic, highly detailed, trending on artstation, realistic landscape, HDR, natural lighting\n",
      "\n",
      "Negative prompt: text, logos, watermarks, out of frame, modern buildings, unnatural colors, cartoonish, simplified, flat colors, low resolution.\n",
      "A rustic barn in a serene valley at dusk, golden hour lighting, warm orange and purple hues, silhouette of trees in the distance, soft light streaming through cracks in the wooden walls, intricate details of weathered wood, (rustic atmosphere: 1.5), photorealistic, highly detailed, trending on artstation, realistic landscape, HDR, natural lighting\n",
      "\n",
      "Negative prompt: text, logos, watermarks, out of frame, modern buildings, unnatural colors, cartoonish, simplified, flat colors, low resolution.\n",
      "A dense forest with lush green trees creating a cool canopy, bright flowers blooming in clusters, vibrant colors, photorealistic, natural lighting, detailed foliage, intricate patterns, (trees:1.2), (flowers:1.1), high resolution, 8k, HDR, realistic landscape\n",
      "\n",
      "Negative prompt: text, logos, watermarks, out of frame, artificial, blurry, unnatural colors, ugly, messy, unrealistic lighting.\n",
      "A dense forest with lush green trees creating a cool canopy, bright flowers blooming in clusters, vibrant colors, photorealistic, natural lighting, detailed foliage, intricate patterns, (trees:1.2), (flowers:1.1), high resolution, 8k, HDR, realistic landscape\n",
      "\n",
      "Negative prompt: text, logos, watermarks, out of frame, artificial, blurry, unnatural colors, ugly, messy, unrealistic lighting.\n",
      "A noble Corgi, regal posture, lush fur, intricate patterns, elegant collar and leash, indoor setting, soft lighting, photorealistic, (fur details:1.5), (noble features:1.3), highly detailed, professional photography, 8k, HDR, realistic lighting\n",
      "\n",
      "Negative prompt: text, logos, watermarks, out of frame, messy fur, blurry, cartoonish, deformed features, artificial lighting.\n",
      "A noble Corgi, regal posture, lush fur, intricate patterns, elegant collar and leash, indoor setting, soft lighting, photorealistic, (fur details:1.5), (noble features:1.3), highly detailed, professional photography, 8k, HDR, realistic lighting\n",
      "\n",
      "Negative prompt: text, logos, watermarks, out of frame, messy fur, blurry, cartoonish, deformed features, artificial lighting.\n",
      "A delicious dish of Kung Pao Chicken, diced chicken breast, chili peppers, peanuts, and scallions, served on a white plate, vibrant colors, photorealistic, food photography, close-up shot, richly textured, steaming hot, appetizing, culinary presentation, (detailed dish:1.3), high resolution, 8k, HDR, natural lighting\n",
      "\n",
      "Negative prompt: text, logos, watermarks, out of frame, unattractive, discolored, unappetizing, messy, artificial, poorly lit\n",
      "A delicious dish of Kung Pao Chicken, diced chicken breast, chili peppers, peanuts, and scallions, served on a white plate, vibrant colors, photorealistic, food photography, close-up shot, richly textured, steaming hot, appetizing, culinary presentation, (detailed dish:1.3), high resolution, 8k, HDR, natural lighting\n",
      "\n",
      "Negative prompt: text, logos, watermarks, out of frame, unattractive, discolored, unappetizing, messy, artificial, poorly lit\n",
      "A room filled with toy robots, various designs and colors, realistic details, intricate mechanisms, colorful lights, futuristic decor, clean and organized, (robot details:1.5), (room setting:1.2), photorealistic, 8k, high-resolution scan, realistic lighting, HDR\n",
      "\n",
      "Negative prompt: text, logos, watermarks, out of frame, blurry, messy, cartoonish, abstract, pixelated, low resolution.\n",
      "A room filled with toy robots, various designs and colors, realistic details, intricate mechanisms, colorful lights, futuristic decor, clean and organized, (robot details:1.5), (room setting:1.2), photorealistic, 8k, high-resolution scan, realistic lighting, HDR\n",
      "\n",
      "Negative prompt: text, logos, watermarks, out of frame, blurry, messy, cartoonish, abstract, pixelated, low resolution.\n",
      "a jungle temple with intricate carvings and statues, dense foliage, hidden passages, ancient ruins, misty atmosphere, (statues and carvings: 1.5), hyper-detailed, photorealistic, 8k, trending on artstation, concept art, cinematic lighting, HDR, natural lighting\n",
      "\n",
      "Negative prompt: text, logos, watermarks, out of frame, blurry, low-res, cartoony, simplified, unrealistic, digital art, painting\n",
      "a jungle temple with intricate carvings and statues, dense foliage, hidden passages, ancient ruins, misty atmosphere, (statues and carvings: 1.5), hyper-detailed, photorealistic, 8k, trending on artstation, concept art, cinematic lighting, HDR, natural lighting\n",
      "\n",
      "Negative prompt: text, logos, watermarks, out of frame, blurry, low-res, cartoony, simplified, unrealistic, digital art, painting\n",
      "Two horses captured in a black and white photograph, showing their powerful musculature and mane flowing in the wind, dramatic lighting, high contrast, emotional expression, (horse details:1.5), photorealistic, professional photography, black and white film photography, 8k, highly detailed, realistic shadows, HDR\n",
      "\n",
      "Negative prompt: color, text, logos, watermarks, out of frame, blurry, artificial lighting, low resolution, cartoon, illustration.\n",
      "Two horses captured in a black and white photograph, showing their powerful musculature and mane flowing in the wind, dramatic lighting, high contrast, emotional expression, (horse details:1.5), photorealistic, professional photography, black and white film photography, 8k, highly detailed, realistic shadows, HDR\n",
      "\n",
      "Negative prompt: color, text, logos, watermarks, out of frame, blurry, artificial lighting, low resolution, cartoon, illustration.\n",
      "A vast palace, Emperor seated at the center, ministers riding broomsticks bowing in worship, some reporting work, the entire hall resplendent with gold and jewels, intricate carvings, vibrant colors, photorealistic, detailed architecture, realistic lighting, (Emperor's throne:1.5), (sweeping robes:1.2), (detailed faces:1.3), hyper realistic, 8k, HDR, highly detailed\n",
      "\n",
      "Negative prompt: text, logos, watermarks, out of frame, cartoonish, unrealistic lighting, blurry, messy, artificial, poorly lit\n",
      "A vast palace, Emperor seated at the center, ministers riding broomsticks bowing in worship, some reporting work, the entire hall resplendent with gold and jewels, intricate carvings, vibrant colors, photorealistic, detailed architecture, realistic lighting, (Emperor's throne:1.5), (sweeping robes:1.2), (detailed faces:1.3), hyper realistic, 8k, HDR, highly detailed\n",
      "\n",
      "Negative prompt: text, logos, watermarks, out of frame, cartoonish, unrealistic lighting, blurry, messy, artificial, poorly lit\n",
      "A cute kitten, soft fur, big round eyes, small pink nose, sitting upright, looking curiously, cute cartoon style, detailed fur texture, bright colors, photorealistic, highly detailed, professional photography, rich shadow and lighting, (cute expression: 1.5), 8k, HDR, natural lighting\n",
      "\n",
      "Negative prompt: text, logos, watermarks, out of frame, blurred, deformed, dirty, unattractive, discolored, ugly, artificial.\n",
      "A cute kitten, soft fur, big round eyes, small pink nose, sitting upright, looking curiously, cute cartoon style, detailed fur texture, bright colors, photorealistic, highly detailed, professional photography, rich shadow and lighting, (cute expression: 1.5), 8k, HDR, natural lighting\n",
      "\n",
      "Negative prompt: text, logos, watermarks, out of frame, blurred, deformed, dirty, unattractive, discolored, ugly, artificial.\n",
      "Gothic architecture, intricate stone carvings, pointed arches, flying buttresses, stained glass windows, towering spires, intricate rose windows, detailed facade, (architectural details:1.5), realistic lighting, realistic shadows, photorealistic, highly detailed, 8k, HDR, professional photography\n",
      "\n",
      "Negative prompt: cartoon, anime, illustration, text, logos, watermarks, out of frame, blurry, abstract, modern architecture, contemporary design\n",
      "Gothic architecture, intricate stone carvings, pointed arches, flying buttresses, stained glass windows, towering spires, intricate rose windows, detailed facade, (architectural details:1.5), realistic lighting, realistic shadows, photorealistic, highly detailed, 8k, HDR, professional photography\n",
      "\n",
      "Negative prompt: cartoon, anime, illustration, text, logos, watermarks, out of frame, blurry, abstract, modern architecture, contemporary design\n",
      "Two brothers with unwavering loyalty, wearing traditional costumes, standing in a scenic landscape, hand in hand, looking at each other with mutual respect and affection, photorealistic, detailed textures, vibrant colors, natural lighting, emotional depth, (facial expressions:1.5), (costume details:1.3), high resolution, 8k, HDR\n",
      "\n",
      "Negative prompt: text, logos, watermarks, out of frame, cartoonish, unrealistic, unnatural poses, modern clothing, unattractive expressions, blurred faces.\n",
      "Two brothers with unwavering loyalty, wearing traditional costumes, standing in a scenic landscape, hand in hand, looking at each other with mutual respect and affection, photorealistic, detailed textures, vibrant colors, natural lighting, emotional depth, (facial expressions:1.5), (costume details:1.3), high resolution, 8k, HDR\n",
      "\n",
      "Negative prompt: text, logos, watermarks, out of frame, cartoonish, unrealistic, unnatural poses, modern clothing, unattractive expressions, blurred faces.\n",
      "A snail, intricate shell patterns, soft body, realistic texture, natural environment, moist ground, sunlit, vibrant colors, photorealistic, macro photography, detailed snail, highly detailed, realistic snail shell, (shell patterns:1.3), 8k, HDR, natural lighting\n",
      "\n",
      "Negative prompt: text, logos, watermarks, out of frame, artificial, cartoon, abstract, simplified, deformed, blurry\n",
      "A snail, intricate shell patterns, soft body, realistic texture, natural environment, moist ground, sunlit, vibrant colors, photorealistic, macro photography, detailed snail, highly detailed, realistic snail shell, (shell patterns:1.3), 8k, HDR, natural lighting\n",
      "\n",
      "Negative prompt: text, logos, watermarks, out of frame, artificial, cartoon, abstract, simplified, deformed, blurry\n",
      "A high school student studying late into the night, sitting at a computer desk, intense focus, bright desk lamp casting a warm glow, books and notes scattered around, comfortable chair, cluttered yet organized workspace, wearing glasses, expression of determination, (facial expression:1.3), photorealistic lighting, detailed shadows, high-resolution scan, realistic indoor scene, 8k, highly detailed, professional study environment\n",
      "\n",
      "Negative prompt: cartoon, anime, video game, cartoonish, abstract, simplified, text, logos, watermarks, out of frame, messy workspace, unfocused expression\n",
      "A high school student studying late into the night, sitting at a computer desk, intense focus, bright desk lamp casting a warm glow, books and notes scattered around, comfortable chair, cluttered yet organized workspace, wearing glasses, expression of determination, (facial expression:1.3), photorealistic lighting, detailed shadows, high-resolution scan, realistic indoor scene, 8k, highly detailed, professional study environment\n",
      "\n",
      "Negative prompt: cartoon, anime, video game, cartoonish, abstract, simplified, text, logos, watermarks, out of frame, messy workspace, unfocused expression\n",
      "A dreamy landscape with a coffee-colored sky, emerald-green lake, and cobalt-blue meadows, reflecting in the water, photorealistic, vibrant colors, highly detailed, professional landscape photography, natural lighting, soft focus, realistic reflections, (coffee-colored sky: 1.5), (emerald-green lake: 1.3), (cobalt-blue meadows: 1.2), 8k, HDR\n",
      "\n",
      "Negative prompt: text, logos, watermarks, out of frame, blurred, distorted, unnatural colors, artificial lighting, low resolution.\n",
      "A dreamy landscape with a coffee-colored sky, emerald-green lake, and cobalt-blue meadows, reflecting in the water, photorealistic, vibrant colors, highly detailed, professional landscape photography, natural lighting, soft focus, realistic reflections, (coffee-colored sky: 1.5), (emerald-green lake: 1.3), (cobalt-blue meadows: 1.2), 8k, HDR\n",
      "\n",
      "Negative prompt: text, logos, watermarks, out of frame, blurred, distorted, unnatural colors, artificial lighting, low resolution.\n",
      "A majestic golden pyramid, intricate hieroglyphics etched into its surface, standing against a clear blue sky. At the entrance, a sphinx seated, its leonine body and human face carved with precision, gaze fixed ahead. The pyramid and sphinx are bathed in soft light, casting long shadows across the desert floor. (8k, photorealistic, hyper realistic, intricate details, highly detailed, sharp focus, artistic vision, cinematic lighting, HDR)\n",
      "\n",
      "Negative prompt: cartoon, anime, illustration, abstract, painting, low quality, bad art, ugly, distorted, mutated, deformed.\n",
      "A majestic golden pyramid, intricate hieroglyphics etched into its surface, standing against a clear blue sky. At the entrance, a sphinx seated, its leonine body and human face carved with precision, gaze fixed ahead. The pyramid and sphinx are bathed in soft light, casting long shadows across the desert floor. (8k, photorealistic, hyper realistic, intricate details, highly detailed, sharp focus, artistic vision, cinematic lighting, HDR)\n",
      "\n",
      "Negative prompt: cartoon, anime, illustration, abstract, painting, low quality, bad art, ugly, distorted, mutated, deformed.\n",
      "Two meerkats in the wild, interacting with a hot air balloon, vibrant colors, natural lighting, photorealistic, wildlife photography, dynamic poses, intricate details, sharp focus, natural habitat, realistic textures, (meerkats and hot air balloon interaction:1.5), high resolution, 8k, HDR\n",
      "\n",
      "Negative prompt: text, logos, watermarks, out of frame, cartoon, illustration, drawing, unrealistic lighting, blurry, artificial, unnatural poses.\n",
      "Two meerkats in the wild, interacting with a hot air balloon, vibrant colors, natural lighting, photorealistic, wildlife photography, dynamic poses, intricate details, sharp focus, natural habitat, realistic textures, (meerkats and hot air balloon interaction:1.5), high resolution, 8k, HDR\n",
      "\n",
      "Negative prompt: text, logos, watermarks, out of frame, cartoon, illustration, drawing, unrealistic lighting, blurry, artificial, unnatural poses.\n",
      "a young girl in a white dress dancing gracefully in a field of daisies, ethereal and dreamlike, soft lighting, romantic, detailed flowers, delicate dress, (dancing movement:1.5), (daisy field:1.2), art by wlop and rossdraws, intricate linework, hyper realistic, photorealistic rendering, high resolution, 8k, HDR, natural lighting\n",
      "\n",
      "Negative prompt: text, logos, watermarks, out of frame, blurry, disconnected limbs, unrealistic proportions, messy background, low resolution, artificial lighting.\n",
      "a young girl in a white dress dancing gracefully in a field of daisies, ethereal and dreamlike, soft lighting, romantic, detailed flowers, delicate dress, (dancing movement:1.5), (daisy field:1.2), art by wlop and rossdraws, intricate linework, hyper realistic, photorealistic rendering, high resolution, 8k, HDR, natural lighting\n",
      "\n",
      "Negative prompt: text, logos, watermarks, out of frame, blurry, disconnected limbs, unrealistic proportions, messy background, low resolution, artificial lighting.\n",
      "Spring has arrived, everything comes back to life. Vibrant flowers blooming, lush green leaves, butterflies fluttering. Clear blue sky, sun shining brightly. Birds singing joyfully, animals waking up from hibernation. Fields and forests full of new growth, blooming cherry blossoms, peaceful countryside scene. (Spring scenery:1.5), photorealistic, hyper realistic, high resolution, 8k, natural lighting, HDR, realistic rendering, no people\n",
      "Spring has arrived, everything comes back to life. Vibrant flowers blooming, lush green leaves, butterflies fluttering. Clear blue sky, sun shining brightly. Birds singing joyfully, animals waking up from hibernation. Fields and forests full of new growth, blooming cherry blossoms, peaceful countryside scene. (Spring scenery:1.5), photorealistic, hyper realistic, high resolution, 8k, natural lighting, HDR, realistic rendering, no people\n",
      "A futuristic spaceship with blazing flames, intricate mechanical details, neon lights reflecting on the hull, fiery explosions in the background, hyper-realistic, cinematic lighting, intense heat waves distorting the view, (detailed flames:1.5), 8k, highly detailed, photorealistic, trending on artstation, HDR, realistic reflections\n",
      "\n",
      "Negative prompt: text, logos, watermarks, out of frame, cartoon, simplified, low resolution, blurry, artificial lighting, unrealistic colors.\n",
      "A futuristic spaceship with blazing flames, intricate mechanical details, neon lights reflecting on the hull, fiery explosions in the background, hyper-realistic, cinematic lighting, intense heat waves distorting the view, (detailed flames:1.5), 8k, highly detailed, photorealistic, trending on artstation, HDR, realistic reflections\n",
      "\n",
      "Negative prompt: text, logos, watermarks, out of frame, cartoon, simplified, low resolution, blurry, artificial lighting, unrealistic colors.\n",
      "a dog, a cat, Jesus in the middle caring for all creatures, including humans and plants, realistic lighting, intricate details, hyper realistic, photorealistic, digital painting, highly detailed, concept art, trending on artstation, 8k, HD, sharp focus\n",
      "\n",
      "Negative prompt: cartoons, sketches, text, logos, watermarks, out of frame, blurry, low quality, bad art, mutated, ugly, disfigured, distorted features, gross, deformed\n",
      "a dog, a cat, Jesus in the middle caring for all creatures, including humans and plants, realistic lighting, intricate details, hyper realistic, photorealistic, digital painting, highly detailed, concept art, trending on artstation, 8k, HD, sharp focus\n",
      "\n",
      "Negative prompt: cartoons, sketches, text, logos, watermarks, out of frame, blurry, low quality, bad art, mutated, ugly, disfigured, distorted features, gross, deformed\n",
      "Ants climbing trees, sauteed vermicelli with minced pork, rich soy-based sauce, garnished with chopped scallions, bright colors, photorealistic, culinary masterpiece, close-up shot, steaming hot, appetizing aroma, intricate texture details, culinary art, 8k, HDR, realistic lighting, natural environment\n",
      "\n",
      "Negative prompt: text, logos, watermarks, out of frame, blurry, messy, artificial looking, unappetizing colors, poor lighting\n",
      "Ants climbing trees, sauteed vermicelli with minced pork, rich soy-based sauce, garnished with chopped scallions, bright colors, photorealistic, culinary masterpiece, close-up shot, steaming hot, appetizing aroma, intricate texture details, culinary art, 8k, HDR, realistic lighting, natural environment\n",
      "\n",
      "Negative prompt: text, logos, watermarks, out of frame, blurry, messy, artificial looking, unappetizing colors, poor lighting\n",
      "sliced beef with beef offal, red chili oil, spicy and savory, garnished with chopped scallions and chili peppers, realistic texture, photorealistic detail, culinary photography, vibrant colors, (detailed dish:1.3), high resolution, 8k, HDR, natural lighting\n",
      "\n",
      "Negative prompt: text, logos, watermarks, out of frame, unattractive, discolored, unappetizing, messy, artificial, poorly lit\n",
      "sliced beef with beef offal, red chili oil, spicy and savory, garnished with chopped scallions and chili peppers, realistic texture, photorealistic detail, culinary photography, vibrant colors, (detailed dish:1.3), high resolution, 8k, HDR, natural lighting\n",
      "\n",
      "Negative prompt: text, logos, watermarks, out of frame, unattractive, discolored, unappetizing, messy, artificial, poorly lit\n",
      "A magnificent phoenix flying over a mountainous landscape, with glowing, fiery feathers, trailing a trail of fire and ashes, daytime, sunlit sky, detailed feathers, photorealistic, vibrant colors, natural lighting, highly detailed, (flying posture:1.3), professional artwork, 8k, HDR\n",
      "\n",
      "Negative prompt: text, logos, watermarks, out of frame, cartoonish, unrealistic lighting, simple, low quality, blurry, artificial\n",
      "A magnificent phoenix flying over a mountainous landscape, with glowing, fiery feathers, trailing a trail of fire and ashes, daytime, sunlit sky, detailed feathers, photorealistic, vibrant colors, natural lighting, highly detailed, (flying posture:1.3), professional artwork, 8k, HDR\n",
      "\n",
      "Negative prompt: text, logos, watermarks, out of frame, cartoonish, unrealistic lighting, simple, low quality, blurry, artificial\n",
      "A fierce battle between robots, futuristic design, intricate mechanical parts, bright neon colors, explosions and debris flying, dynamic action poses, realistic lighting and shadows, cyberpunk aesthetics, detailed textures and shadows, (robotic details:1.5), high resolution, 8k, photorealistic, HDR\n",
      "\n",
      "Negative prompt: cartoony, comic book, 2D, illustration, low quality, pixelated, out of focus, blurry, text, logos, watermarks, out of frame, unrealistic lighting, simple backgrounds\n",
      "A fierce battle between robots, futuristic design, intricate mechanical parts, bright neon colors, explosions and debris flying, dynamic action poses, realistic lighting and shadows, cyberpunk aesthetics, detailed textures and shadows, (robotic details:1.5), high resolution, 8k, photorealistic, HDR\n",
      "\n",
      "Negative prompt: cartoony, comic book, 2D, illustration, low quality, pixelated, out of focus, blurry, text, logos, watermarks, out of frame, unrealistic lighting, simple backgrounds\n",
      "A realistic scene from the movie A Bug's Life, intricate details of ants and insects, vibrant colors, photorealistic rendering, detailed textures, realistic lighting, cinematic camera angles, highly detailed background, (detailed insects:1.5), 8k, HDR, high-resolution scan, realistic landscape, shadow\n",
      "\n",
      "Negative prompt: cartoony, simplified, low resolution, text, logos, watermarks, out of frame, blurred edges, unfinished, pixelated.\n",
      "A realistic scene from the movie A Bug's Life, intricate details of ants and insects, vibrant colors, photorealistic rendering, detailed textures, realistic lighting, cinematic camera angles, highly detailed background, (detailed insects:1.5), 8k, HDR, high-resolution scan, realistic landscape, shadow\n",
      "\n",
      "Negative prompt: cartoony, simplified, low resolution, text, logos, watermarks, out of frame, blurred edges, unfinished, pixelated.\n"
     ]
    }
   ],
   "source": [
    "#定义一个空列表，用于存储优化后的prompt\n",
    "update_prompt = []\n",
    "#依次遍历每一条rawdata\n",
    "for pt in raw_prompt:\n",
    "    p = prompt_update(pt)\n",
    "    update_prompt.append(p)\n",
    "    print(p)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 27,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Image 0 saved as update/0.png\n",
      "Image 1 saved as update/1.png\n",
      "Image 2 saved as update/2.png\n",
      "Image 3 saved as update/3.png\n",
      "Image 4 saved as update/4.png\n",
      "Image 5 saved as update/5.png\n",
      "Image 6 saved as update/6.png\n",
      "Image 7 saved as update/7.png\n",
      "Image 8 saved as update/8.png\n",
      "Image 9 saved as update/9.png\n",
      "Image 10 saved as update/10.png\n",
      "Image 11 saved as update/11.png\n",
      "Image 12 saved as update/12.png\n",
      "Image 13 saved as update/13.png\n",
      "Image 14 saved as update/14.png\n",
      "Image 15 saved as update/15.png\n",
      "Image 16 saved as update/16.png\n",
      "Image 17 saved as update/17.png\n",
      "Image 18 saved as update/18.png\n",
      "Image 19 saved as update/19.png\n",
      "Image 20 saved as update/20.png\n",
      "Image 21 saved as update/21.png\n",
      "Image 22 saved as update/22.png\n",
      "Image 23 saved as update/23.png\n",
      "Image 24 saved as update/24.png\n"
     ]
    }
   ],
   "source": [
    "#将update_prompt依次输入到SD-XL,生成图片并保存到当前目录下的update文件夹\n",
    "generate_and_save(update_prompt, \"update\")"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 通过Aesthetics Score评价优化方案的可行性\n",
    "\n",
    "* Aesthetics Score 是一种衡量图像美学素质的数值指标。\n",
    "* 该指标的计算方法是将图像的不同视觉特征（如色彩、形状、线条、纹理、光照、透视、空间分布等）的重要程度进行加权，并将加权结果乘以相应的权重，得到的结果即为图像的美学得分。\n",
    "* 美学得分的范围从 0 到 10，数值越高，图像的视觉效果越好。"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "首先，将未优化过的初始raw_prompt输入到模型中，得到优化前的分数，作为baseline。"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Loading sac+logos+ava1-l14-linearMSE\n",
      "Loading CLIP ViT-L/14\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "100%|██████████| 25/25 [00:10<00:00,  2.30it/s]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "16.png 6.841940402984619\n",
      "7.png 6.745919227600098\n",
      "13.png 6.737991809844971\n",
      "2.png 6.645719528198242\n",
      "5.png 6.6044769287109375\n",
      "18.png 6.601787090301514\n",
      "12.png 6.52354621887207\n",
      "15.png 6.317983627319336\n",
      "1.png 6.285238265991211\n",
      "22.png 6.2014336585998535\n",
      "0.png 6.191251277923584\n",
      "19.png 6.138124465942383\n",
      "14.png 6.092841625213623\n",
      "10.png 6.074313640594482\n",
      "23.png 6.055541515350342\n",
      "9.png 5.978781223297119\n",
      "8.png 5.959288597106934\n",
      "3.png 5.864199638366699\n",
      "4.png 5.828464984893799\n",
      "21.png 5.726274490356445\n",
      "17.png 5.555602073669434\n",
      "11.png 5.473254203796387\n",
      "20.png 5.4281768798828125\n",
      "24.png 5.410065650939941\n",
      "6.png 5.213546276092529\n",
      "average score: 6.099830532073975\n",
      "mean: 6.099830532073975 all: [6.841940402984619, 6.745919227600098, 6.737991809844971, 6.645719528198242, 6.6044769287109375, 6.601787090301514, 6.52354621887207, 6.317983627319336, 6.285238265991211, 6.2014336585998535, 6.191251277923584, 6.138124465942383, 6.092841625213623, 6.074313640594482, 6.055541515350342, 5.978781223297119, 5.959288597106934, 5.864199638366699, 5.828464984893799, 5.726274490356445, 5.555602073669434, 5.473254203796387, 5.4281768798828125, 5.410065650939941, 5.213546276092529]\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\n"
     ]
    }
   ],
   "source": [
    "# 构造 args 对象，用于传入/raw下的优化前的图片\n",
    "args = ae_score.argparse.Namespace(\n",
    "    image_file_or_dir=\"raw\",# 输入图像文件或文件夹路径\n",
    "    save_csv=False,\n",
    "    model=ae_score.MODEL,\n",
    "    device=None\n",
    ")\n",
    "# 运行 main 函数\n",
    "raw_scores = ae_score.main(args)\n",
    "# 保存所有分数列表和分数期望\n",
    "raw_score = raw_scores[0]\n",
    "all_raws = []\n",
    "for lst in raw_scores[1]:\n",
    "    all_raws.append(lst['score'])"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "接下来，对已优化的prompt生成的图片进行评测："
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Loading sac+logos+ava1-l14-linearMSE\n",
      "Loading CLIP ViT-L/14\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "100%|██████████| 25/25 [00:11<00:00,  2.18it/s]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "1.png 7.056516647338867\n",
      "12.png 7.022249221801758\n",
      "7.png 6.984950065612793\n",
      "19.png 6.964156150817871\n",
      "17.png 6.926566123962402\n",
      "0.png 6.855005264282227\n",
      "16.png 6.853736877441406\n",
      "10.png 6.825506210327148\n",
      "13.png 6.798949718475342\n",
      "22.png 6.68180513381958\n",
      "5.png 6.6625871658325195\n",
      "14.png 6.540289878845215\n",
      "4.png 6.3354339599609375\n",
      "20.png 6.323609352111816\n",
      "2.png 6.278228759765625\n",
      "8.png 6.273447036743164\n",
      "11.png 6.2193193435668945\n",
      "23.png 6.215234756469727\n",
      "3.png 6.162156105041504\n",
      "6.png 6.09523868560791\n",
      "18.png 6.039311408996582\n",
      "9.png 6.030139923095703\n",
      "15.png 6.010545253753662\n",
      "21.png 5.9157257080078125\n",
      "24.png 5.8753461837768555\n",
      "average score: 6.477842197418213\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\n"
     ]
    }
   ],
   "source": [
    "# 构造 args 对象，用于传入/update下的优化后的图片\n",
    "args = ae_score.argparse.Namespace(\n",
    "    image_file_or_dir=\"update\",# 输入图像文件或文件夹路径\n",
    "    save_csv=False,\n",
    "    model=ae_score.MODEL,\n",
    "    device=None\n",
    ")\n",
    "# 运行 main 函数\n",
    "update_scores = ae_score.main(args)\n",
    "# 保存所有分数列表和分数期望\n",
    "update_score = update_scores[0]\n",
    "all_updates = []\n",
    "for lst in update_scores[1]:\n",
    "    all_updates.append(lst['score'])"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "* 在总量为25的数据集上进行了Aesthetics score美学评分，最终我们的图片美化效果提升幅度接近6%。\n",
    "* 从raw_prompt和update_prompt的aesthetics score分数对比图可以明显看到，针对每一条prompt的优化均有分数上的提升，且最大提升幅度达到了近13%。"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 64,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAABKUAAAJOCAYAAABm7rQwAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjguMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy81sbWrAAAACXBIWXMAAA9hAAAPYQGoP6dpAAD4+UlEQVR4nOzde1yUZfo/8M8MzDAzgAIjCKaAHATEBBXEQyp+S2kVkkQgzKKDtlsiCVoeqk03N/W7hWKZGpXI9k0RSRa1drRNMlNT+Yl5QAXM1PIEMygIODDz/P5wmRo5CAozIJ/368Xr1dzPfT9zPaAkF9d93SJBEAQQERERERERERGZkNjcARARERERERERUdfDpBQREREREREREZkck1JERERERERERGRyTEoREREREREREZHJMSlFREREREREREQmx6QUERERERERERGZHJNSRERERERERERkckxKERERERERERGRyTEpRUREREREREREJsekFBERERG1mXPnzkEkEsHd3d3codw3kUgEkUhk7jCIiIgeWExKERERUbtzd3c3/IBf/yGTydC3b19MmzYNhw4dMneInc5zzz0HkUiE5557rtl5ixYtgkgkQmhoqEniamsFBQVYtGgRcnJyzB0KERERtTEmpYiIiMhkvL29MXLkSIwcORLe3t64fPky/u///g/Dhw/HP//5T3OHRx1QQUEBFi9ezKQUERHRA4hJKSIiIjKZhQsXYu/evdi7dy+OHTuG3377DVOmTIFOp8PMmTOh0WjMHSIRERERmQiTUkRERGQ29vb2+PTTT2FtbY2Kigrs3LnT3CERERERkYkwKUVERERm1a1bN/Tr1w/A7SbZd9q1axcSEhIQEBAABwcHyGQyeHp64uWXX8b58+cbzH/11VchEomwatWqBtd8fX0hEokwatSoBtfqey8tWrTorjHPnTsXIpEICQkJTc45fvw4RCIRnJycUFdXZxjfu3cvnnzySTg7O0MikcDBwQF+fn6YPn06Dhw4cNf3bivp6emGnlQVFRVITk6Gu7s7ZDIZPDw88MYbb6CqqqrJ9d999x0ee+wxdOvWDd27d8fYsWOxa9euZt/zwIEDeP311xEUFAQnJydYWVmhT58+eOaZZ3DixIkG893d3fH8888DADZs2GDUk6yxHlkqlQpPPPEEevbsCSsrK/Tu3RvPP/88SkpK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o/5kvz82t7/X5yAiIqK2w6QUERERmc3IkSORlpYGAHj11Vdx48YNo+v/93//BwB4//338fLLL8PLy8uo59OFCxcavW+vXr3g6emJy5cv48yZMw0qof6YtMrPz0dlZSWGDBkCGxubVsUfGxsLsViM7du3GxI39QmqO6uk6j3zzDMoKCjApUuXsGnTJrz44ouwtLREWloapk2b1uL37t69O4Dfq4CaUn+9fv6drl271uTaq1evAoBRFVf956ipdfVr7lT/tXzttdcwf/589O/fH9bW1obtjU19Le+mPp6nn37akKxs6uOPp/vd63MQERFR22FSioiIiMwqMjISw4YNg1qtRkpKitG1c+fOAUCjFUy1tbUoLCxs8r5/7Cu1Z88edO/eHYGBgYb7SSQS5OXl3VM/qXouLi4IDQ1FdXU1cnJyoNVq8eWXXwJoOilVz9nZGbGxsfjkk0/w448/GpJbly5datF79+vXDwBw/PjxZufVb2/z8fFp9Prp06cb3U4nCAJOnz5t9F5//O9Tp041er+mvibNfS2BpntJ/bEnV2P69+8P4O6fhzvd63MQERFR22FSioiIiMxu/vz5AIBVq1YZtlUBMFRFXblypcGa9evXN1vlU59kys3NRUFBAR555BFD7yRra2sMHjwY+/fvNzQdb00/qT/64xa+r7/+GhqNBkOHDoWnp2eL79G/f39DJdNvv/3WojXjxo2DSCTCuXPnjBqR/9HZs2cN18aPH9/onIsXLzbaZH7Hjh345ZdfYG1tjZEjRxrG6++zdu3aRu+3Zs2aRseb+1ru3LmzyaRU/bo/br37o1GjRqFHjx44evSoUSXU3dQ/x6efftrolsG79TEjIiKi+8ekFBEREZndE088AT8/P2g0GqOkRn3j6jfffNMoAfXvf/8br732GmQyWZP3rE8ybd++HXq9vkHSacyYMaiqqsI333wDsVjcZJPsu4mKioKVlRV27dqFDz/8EMDviao/unHjBp566ink5eUZVSbpdDqsWrUKGo0G1tbWTVY03cnT0xOxsbEAgGnTpuHQoUNG10+dOoWoqCjodDoMHz4cY8eObfQ+lpaWmDVrlqGiCgBOnjyJhIQEAMBf/vIXo+17f/nLX2BtbY0ff/wRb731lqFnVW1tLV577TVD/6Y71X9+ly1bhp9//tkwfujQIbzwwgtNfi09PDwM86qqqhpcl8lk+Nvf/gYAiI6OxtatWyEIgtGc48ePY968eUbJu7i4ODz00EO4ePEi/vznPxuSXoIgIDU1FV999VWj8RAREVEbEoiIiIjamZubmwBAWL9+fZNzPv30UwGA4OzsLFRXVwuCIAi//PKL4ODgIAAQ5HK5EBgYKLi7uwsAhLFjxwpPP/10s/d1dXUVAAgAhB9//NHo2o4dOwzXBg8efF/PFxkZabiXWCwWfvvttwZzNBqNYY61tbUQEBAgBAUFCT169BAACCKRSEhLS2vV+6rVaiEkJMRwXzc3NyEkJETw9vY2jPXr1084d+5cg7Xr168XAAhPPfWUMGjQIEEkEgkDBgwQHn74YUEkEgkAhODgYKGysrLB2s8//9wwp0ePHkJwcLDg4OAgiMViYdmyZYZY/uj69euCh4eHAECQSqXCww8/LPj4+AgAhP79+wvJyckCAOHtt982WqfT6QzPo1QqheHDhwtjxowRXn31VaN58+fPNzyzg4ODEBwcLAwePNjw5weA8PXXXxut+fbbbwUrKysBgNCtWzchODhYcHZ2FgAI//u//2tYR0RERO2DlVJERETUIUybNg29evXC5cuX8dlnnwEAXF1dsX//fkyePBlSqRSnTp2CTCbD4sWL8e9//xuWlpbN3rN+C5+NjQ0GDx5sdO2RRx4xnEh3L/2k/uiPlVFjx46Fi4tLgzm2trb45z//iWeeeQZ9+vTBuXPncOLECTg4OGDatGk4cuQIpk+f3qr3tbe3x549e7B27VqEhoaisrIS+fn5uHr1KoYPH47//d//RX5+Ptzc3Jq8h5WVFb777jtDo/nTp0/D1dUV8+fPx+7du2Ftbd1gzdNPP41vv/0WY8eORU1NDU6dOoWHH34YX3/9taF6607dunXD3r178eyzz6Jbt244ffo0tFotkpOTsX//fqNqrD8Si8XYsWMHpkyZAgsLCxw8eBDfffcdCgoKjOYtXboUP/zwA6ZOnQpra2scPXoU586dQ+/evfHCCy9gx44dePTRR43WjB07FgcOHEBERAREIhFOnjyJPn36YOPGjXjttdfu8tknIiKi+yUShDvqm4mIiIjogZeeno7nn38e8fHxSE9PN3c4RERE1AWxUoqIiIiIiIiIiEyOSSkiIiIiIiIiIjI5JqWIiIiIiIiIiMjkmJQiIiIiIiIiIiKTY6NzIiIiIiIiIiIyOVZKERERERERERGRyVmaO4DOQq/X47fffoOtrS1EIpG5wyEiIiIiIiIi6pAEQUBFRQV69eoFsbjpeigmpVrot99+Q58+fcwdBhERERERERFRp3DhwgX07t27yetMSrWQra0tgNuf0G7dupk5GiIiIiIiIiKijunGjRvo06ePIZfSFCalWqh+y163bt2YlCIiIiIiIiIiuou7tT9io3MiIiIiIiIiIjI5JqWIiIiIiIiIiMjkmJQiIiIiIiIiIiKTY08pIiIiIiIiogeYTqdDbW2tucOgB4hEIoGFhcV934dJKSIiIiIiIqIHkCAIuHz5MsrLy80dCj2A7Ozs4OzsfNdm5s1hUoqIiIiIiIjoAVSfkHJycoJCobiv5AFRPUEQUFVVhatXrwIAXFxc7vleTEoRERERERERPWB0Op0hIaVUKs0dDj1g5HI5AODq1atwcnK65618bHRORERERERE9ICp7yGlUCjMHAk9qOr/bN1PvzImpYiIiIiIiIgeUNyyR+2lLf5scfseERERERERETVJEASUlZWhsrISNjY2UCqVTHZRm2ClFBERERERERE1UF5ejtTUVHj7+MLR0RF9+/aFo6MjvH18kZqaylP96L4xKUVERERERERERlQqFfq4uiJpzhxcsXRGj0nz4RS7BD0mzccVS2ckzZmDPq6uUKlUbf7ezz33HEQiEUQiESwtLeHq6oqXX34ZGo2mzd+rOWfPnkVcXBx69eoFmUyG3r17Y9KkSThz5oxJ43iQcfseERERERERERmoVCpMDA+HlfsgPBSWCAsbe6Pr1r6PwK5SA7VqFSaGh2PH9u0ICwtr0xgef/xxrF+/HnV1dTh58iReeOEFlJeXY+PGjW36Pk3RarUYN24cfH198eWXX8LFxQUXL17EV199hevXr7fb+9bW1kIikbTb/TsaVkqREUEQUFpainPnzqG0tBSCIJg7JCIiIiIiIjKR8vJyTImOhpX7IPR48s0GCal6Fjb26PHkm7ByH4Qp0dFtvpXPysoKzs7O6N27N8aPH4/Y2Fjs3LnTcF2n0+HFF19E3759IZfL4ePjg9TUVMP1Y8eOQSwWo7S0FACg0WggFosRHR1tmLN06VIMHz680fc/efIkzp49i48++gjDhg2Dm5sbRo4cib///e8IDg42zLt48SKeeuopODg4wNraGkFBQfjxxx8N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VMh8B0LmMxAWUhvUaMugyT0CTc4RyOVy7N2zB2FhYaaOTO3M+PHjcfToUSQlJUGlUsHT0xNLliyBs7MzgHvNzAsKCvTWlJWV4YcffkBsbKwpIpsci1JERERERETULoSHh+PqlStISkrCytUJuJi6VPecl48v4uLjERMTA3t7exOmpPYsMjISkZGR9T43d+7cOmM2Njb45ptvDJzKfLEoRURERERERO2GQqFAXFwcZsyYAZVKhdLSUtja2sLR0ZFNzYnMDItSRERERERE1O6IRCIolUoolUpTRyGiBphdo/OFCxdCJBLpfdWev6xPenp6nfkikQjnz5/Xm7d9+3Z0794d1tbW6N69O3bs2GHot0JERERERERERA0wy51SgYGB+Pbbb3WPLS0tm1xz4cIF2NnZ6R537NhR999Hjx7F+PHj8Y9//APPP/88duzYgXHjxuHw4cMICQlp3fBERERERERERNQksyxKWVlZNbo7qj6dOnVq8Haey5cvxzPPPIO33noLAPDWW2/h4MGDWL58OZKTkx82LhERERERERERtZDZHd8DgNzcXLi6uqJr16544YUX8N///rfJNX369IGLiwuefvppHDhwQO+5o0eP1rndZ3h4OI4cOdLg6929exclJSV6X0REREREREStRRAElJeXo7i4GOXl5RAEwdSRiIzK7HZKhYSEICkpCb6+vsjPz8eiRYswcOBAnD17tt4GdS4uLli3bh369u2Lu3fv4t///jeefvpppKenY8iQIQCAmzdvonPnznrrOnfujJs3bzaY44MPPsC7777bum+OiIiIiIiIHnlarRZZWVk4cTIDalWRbtzBUYn+/YIRFBQEqVRqwoRExmF2Ralnn31W9989e/bEgAED4OXlhY0bN2L27Nl15vv5+cHPz0/3eMCAAbh69So+/vhjXVEKQJ1bfwqC0OjtQN966y29X6+kpARubm4P9J6IiIiIiIiIACAvLw8pKSmoqKyEROkOuV8ARFZiCFWVuFN0FWn79uHAgQOIioqCt7e3qeMSGZTZFaXu16FDB/Ts2RO5ubnNXvPEE0/giy++0D12dnausyuqoKCgzu6pP7K2toa1tXXLAxMRERERERHVIy8vD5uSk2GlcIadVwhEEv3dUGInN0grHofm4nFsSk7GhOhoFqaoXTPLnlJ/dPfuXZw7dw4uLi7NXnPq1Cm9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xccjJiYG9vb2JkxJTWFRioiIiIiIiIjaHIVCgbi4OMyYMcOs+l5R87EoRURERERERERtVm3fK6VSaeoo1EJsdE5EREREREREREbHohQRERERERERERkdi1JERERERERERGR0LEoREREREREREZHRsShFRERERERERERGx6IUEREREREREREZHYtSRERERERERERkdCxKERERERERERGR0bEoRURERERERERERseiFBERERERERERGR2LUkREREREREREZHQsShERERERERERkdGxKEVEREREREREREbHohQRERERERERERkdi1JERERERERERGR0LEoREREREREREZHRsShFRERERERERERGx6IUEREREREREREZHYtSRERERERERERkdCxKERERERERERGR0bEoRURERERERERERseiFBERERERERERGR2LUkREREREREREZHQsShERERERERERkdGxKEVEREREREREREbHohQRERERERERERkdi1JERERERERERGR0ZleUWrhwIUQikd6Xs7Nzg/O//PJLPPPMM+jYsSPs7OwwYMAApKWl6c3ZsGFDndcUiUTQarWGfjtERERERERERFQPK1MHqE9gYCC+/fZb3WNLS8sG5/7www945plnsHjxYigUCqxfvx4RERE4fvw4+vTpo5tnZ2eHCxcu6K2VSqWtH56IiIiIiIiIiJpklkUpKyurRndH/dHy5cv1Hi9evBhfffUVdu3apVeUamrHFRERERERERERGY/ZHd8DgNzcXLi6uqJr16544YUX8N///rfZa2tqalBaWgpHR0e98bKyMnh4eKBLly4YOXIkTp061ejr3L17FyUlJXpfRERERERERETUOsyuKBUSEoKkpCSkpaUhMTERN2/exMCBA1FUVNSs9f/85z9x584djBs3Tjfm7++PDRs2IDU1FcnJyZBKpXjyySeRm5vb4Ot88MEHsLe31325ubk99HsjIiIiIiIiIqJ7RIIgCKYO0Zg7d+7Ay8sLf//73zF79uxG5yYnJ+Pll1/GV199haFDhzY4r6amBo8//jiGDBmClStX1jvn7t27uHv3ru5xSUkJ3NzccPv2bdjZ2T3YmyEiIiIiIiKidis9Pf2hXyM0NPShX8PUSkpKYG9v32QNxSx7Sv1Rhw4d0LNnz0Z3NQHAli1b8NJLLyElJaXRghQAWFhYoF+/fo2+prW1NaytrR8oMxERERERERHRHwmCAI1Gg4qKCkgkEshkMohEIlPHMimzL0rdvXsX586dw+DBgxuck5ycjBdffBHJyckYMWJEk68pCAKysrLQs2fP1oxKRERERERERKRHq9UiKysLJ05mQK36vTWRg6MS/fsFIygoCFKp1IQJTcfsilJvvPEGIiIi4O7ujoKCAixatAglJSWIiYkBALz11lu4fv06kpKSANwrSE2ePBkrVqzAE088gZs3bwIAZDIZ7O3tAQDvvvsunnjiCfj4+KCkpAQrV65EVlYWEhISTPMmiYiIiIiIiKjdy8vLQ0pKCioqKyFRukPuFwCRlRhCVSXuFF1F2r59OHDgAKKiouDt7W3quEZndo3Or127hujoaPj5+WH06NGQSCQ4duwYPDw8AAA3btzAlStXdPP/9a9/oaqqCtOnT4eLi4vu67XXXtPNKS4uxiuvvIKAgACEhYXh+vXr+OGHH9C/f3+jvz8iIiIiIiIiav/y8vKwKTkZgo0T7IIjIfMbCLGTG6wUzhA7uUHmNxB2wZEQbJywKTkZeXl5po5sdGbf6NxcNLdJFxERERERERE9mmobnWu1WixbtgyCjRPk/kOAxnpHCQLKz/8AUVkhZs2ahWHDhhknrAE1t4ZidjuliIiIiIiIiIjasqysLFRUVkLmFdJ4QQoARCJIvfqjsrIS2dnZxgloJliUIiIiIiIiIiJqJYIg4MTJDIiV7hBJmtfA3EIig5XSDcdPnMSjdKDN7Bqdm6va/ylKSkpMnISIiIiIiIiIzNGdO3eg0WhwqyAfMp9uqLyraf5i2064lXsMv/76KxwdHQ0X0ghqaydNFdjYU6qZrl27Bjc3N1PHICIiIiIiIiJqE65evYouXbo0+DyLUs1UU1OD3377Dba2thA1dR60jSspKYGbmxuuXr1qtk3dmbF1MGPraQs5mbF1MGPrYMbW0xZyMmPrYMbW0RYyAm0jJzO2DmZsHW0hI9B2cj4sQRBQWloKV1dXWFg03DmKx/eaycLCotHqXntkZ2dn9n9ImLF1MGPraQs5mbF1MGPrYMbW0xZyMmPrYMbW0RYyAm0jJzO2DmZsHW0hI9B2cj4Me3v7Juew0TkRERERERERERkdi1JERERERERERGR0LEpRHdbW1liwYAGsra1NHaVBzNg6mLH1tIWczNg6mLF1MGPraQs5mbF1MGPraAsZgbaRkxlbBzO2jraQEWg7OY2Fjc6JiIiIiIiIiMjouFOKiIiIiIiIiIiMjkUpIiIiIiIiIiIyOhaliIiIiIiIiIjI6FiUIj2ffPIJunbtCqlUir59++LQoUOmjqTnhx9+QEREBFxdXSESibBz505TR6rjgw8+QL9+/WBra4tOnTohMjISFy5cMHUsPWvWrEGvXr1gZ2cHOzs7DBgwAF9//bWpYzXqgw8+gEgkwsyZM00dRWfhwoUQiUR6X87OzqaOVcf169cxceJEKJVKyOVyBAUFITMz09Sx9Hh6etb5XopEIkyfPt3U0XSqqqrwzjvvoGvXrpDJZOjWrRvee+891NTUmDqantLSUsycORMeHh6QyWQYOHAgTp48abI8Tf3cFgQBCxcuhKurK2QyGUJDQ3H27Fmzyvjll18iPDwcTk5OEIlEyMrKMmq+pjJWVlZizpw56NmzJzp06ABXV1dMnjwZv/32m9lkBO79zPT390eHDh3g4OCAoUOH4vjx40bN2Jycf/TXv/4VIpEIy5cvN1o+oOmMU6ZMqfPz8oknnjCrjABw7tw5PPfcc7C3t4etrS2eeOIJXLlyxWwy1nfdEYlE+Oijj8wmY1lZGWJjY9GlSxfIZDIEBARgzZo1RsvXnIz5+fmYMmUKXF1dIZfLMWzYMOTm5ho1Y3P+/m3q601zMpr6etNURnO53jTne2nqa05LPxOa6npjDliUIp0tW7Zg5syZmDdvHk6dOoXBgwfj2WefNepfHppy584d9O7dG6tXrzZ1lAYdPHgQ06dPx7Fjx7B//35UVVUhLCwMd+7cMXU0nS5dumDJkiXIyMhARkYG/vznP2PUqFFG/yDYXCdPnsS6devQq1cvU0epIzAwEDdu3NB9nT592tSR9KjVajz55JMQi8X4+uuv8csvv+Cf//wnFAqFqaPpOXnypN73cf/+/QCAqKgoEyf73dKlS7F27VqsXr0a586dw4cffoiPPvoIq1atMnU0PS+//DL279+Pf//73zh9+jTCwsIwdOhQXL9+3SR5mvq5/eGHHyI+Ph6rV6/GyZMn4ezsjGeeeQalpaVmk/HOnTt48sknsWTJEqNlqi9DQxnLy8vx008/Yf78+fjpp5/w5ZdfIicnB88995zZZAQAX19frF69GqdPn8bhw4fh6emJsLAw3Lp1y6xy1tq5cyeOHz8OV1dXIyX7XXMyDhs2TO/n5t69e42YsOmMFy9exKBBg+Dv74/09HRkZ2dj/vz5kEqlZpPxj9+/Gzdu4PPPP4dIJMKYMWPMJuOsWbPwzTff4IsvvsC5c+cwa9YszJgxA1999ZVZZBQEAZGRkfjvf/+Lr776CqdOnYKHhweGDh1q1L/7Nufv36a+3jQno6mvN01lNJfrTXO+l6a+5rTkM6EprzdmQSD6n/79+wuvvvqq3pi/v78wd+5cEyVqHABhx44dpo7RpIKCAgGAcPDgQVNHaZSDg4Pw6aefmjpGHaWlpYKPj4+wf/9+4amnnhJee+01U0fSWbBggdC7d29Tx2jUnDlzhEGDBpk6Rou99tprgpeXl1BTU2PqKDojRowQXnzxRb2x0aNHCxMnTjRRorrKy8sFS0tLYffu3XrjvXv3FubNm2eiVL+7/+d2TU2N4OzsLCxZskQ3ptVqBXt7e2Ht2rUmSNj4teXSpUsCAOHUqVNGzXS/5lz/Tpw4IQAQfv31V+OEuk9zMt6+fVsAIHz77bfGCVWPhnJeu3ZNeOyxx4QzZ84IHh4ewrJly4yerVZ9GWNiYoRRo0aZJE996ss4fvx4s/r52Jz/J0eNGiX8+c9/Nk6getSXMTAwUHjvvff0xh5//HHhnXfeMWKy392f8cKFCwIA4cyZM7qxqqoqwdHRUUhMTDRBwnvu//u3OV5vGvuMYC7Xm+Z8jjH19UYQmpfT1NechjKa0/XGVLhTigAAFRUVyMzMRFhYmN54WFgYjhw5YqJU7cPt27cBAI6OjiZOUr/q6mps3rwZd+7cwYABA0wdp47p06djxIgRGDp0qKmj1Cs3Nxeurq7o2rUrXnjhBfz3v/81dSQ9qampCA4ORlRUFDp16oQ+ffogMTHR1LEaVVFRgS+++AIvvvgiRCKRqePoDBo0CN999x1ycnIAANnZ2Th8+DCGDx9u4mS/q6qqQnV1dZ2dCDKZDIcPHzZRqoZdunQJN2/e1Lv2WFtb46mnnuK15yHdvn0bIpHI7HZF1qqoqMC6detgb2+P3r17mzqOnpqaGkyaNAlvvvkmAgMDTR2nQenp6ejUqRN8fX0xbdo0FBQUmDqSTk1NDfbs2QNfX1+Eh4ejU6dOCAkJMcu2C7Xy8/OxZ88evPTSS6aOomfQoEFITU3F9evXIQgCDhw4gJycHISHh5s6GgDg7t27AKB33bG0tIREIjHpdef+v3+b4/XG3D8jAM3LaA7Xm6ZymsM1p76MbeV6Y2gsShEAoLCwENXV1ejcubPeeOfOnXHz5k0TpWr7BEHA7NmzMWjQIPTo0cPUcfScPn0aNjY2sLa2xquvvoodO3age/fupo6lZ/Pmzfjpp5/wwQcfmDpKvUJCQpCUlIS0tDQkJibi5s2bGDhwIIqKikwdTee///0v1qxZAx8fH6SlpeHVV19FXFwckpKSTB2tQTt37kRxcTGmTJli6ih65syZg+joaPj7+0MsFqNPnz6YOXMmoqOjTR1Nx9bWFgMGDMA//vEP/Pbbb6iursYXX3yB48eP48aNG6aOV0ft9YXXntal1Woxd+5cTJgwAXZ2dqaOo2f37t2wsbGBVCrFsmXLsH//fjg5OZk6lp6lS5fCysoKcXFxpo7SoGeffRb/+c9/8P333+Of//wnTp48iT//+c+6AoGpFRQUoKysDEuWLMGwYcOwb98+PP/88xg9ejQOHjxo6nj12rhxI2xtbTF69GhTR9GzcuVKdO/eHV26dIFEIsGwYcPwySefYNCgQaaOBgDw9/eHh4cH3nrrLajValRUVGDJkiW4efOmya479f3929yuN+b8GaFWczKaw/WmsZzmcs1pKGNbuN4Yg5WpA5B5uX9XgiAIZrVToa2JjY3Fzz//bJY7FPz8/JCVlYXi4mJs374dMTExOHjwoNkUpq5evYrXXnsN+/btM2r/iZZ49tlndf/ds2dPDBgwAF5eXti4cSNmz55twmS/q6mpQXBwMBYvXgwA6NOnD86ePYs1a9Zg8uTJJk5Xv88++wzPPvus2Z2r37JlC7744gts2rQJgYGByMrKwsyZM+Hq6oqYmBhTx9P597//jRdffBGPPfYYLC0t8fjjj2PChAn46aefTB2tQbz2tJ7Kykq88MILqKmpwSeffGLqOHX86U9/QlZWFgoLC5GYmIhx48bh+PHj6NSpk6mjAQAyMzOxYsUK/PTTT2b9/+D48eN1/92jRw8EBwfDw8MDe/bsMYuiSu0NIEaNGoVZs2YBAIKCgnDkyBGsXbsWTz31lCnj1evzzz/HX/7yF7P7O8fKlStx7NgxpKamwsPDAz/88AP+9re/wcXFxSx2kYvFYmzfvh0vvfQSHB0dYWlpiaFDh+r9HcnYGvv7t7lcb8z5M0KtpjKay/WmsZzmcs2pL2Nbud4YA3dKEQDAyckJlpaWdf6loKCgoM6/KFDzzJgxA6mpqThw4AC6dOli6jh1SCQSeHt7Izg4GB988AF69+6NFStWmDqWTmZmJgoKCtC3b19YWVnBysoKBw8exMqVK2FlZYXq6mpTR6yjQ4cO6Nmzp9HvONMYFxeXOoXGgIAAs7qBwR/9+uuv+Pbbb/Hyyy+bOkodb775JubOnYsXXngBPXv2xKRJkzBr1iyz28nn5eWFgwcPoqysDFevXsWJEydQWVmJrl27mjpaHbV3q+S1p3VUVlZi3LhxuHTpEvbv3292u6SAez8nvb298cQTT+Czzz6DlZUVPvvsM1PH0jl06BAKCgrg7u6uu/b8+uuveP311+Hp6WnqeA1ycXGBh4eH2Vx/nJycYGVl1WauP4cOHcKFCxfM7tqj0Wjw9ttvIz4+HhEREejVqxdiY2Mxfvx4fPzxx6aOp9O3b1/dP3TeuHED33zzDYqKikxy3Wno79/mdL0x988IQNMZzeV601ROc7jmNJSxrV5vDIFFKQJwr0DRt29f3R2vau3fvx8DBw40Uaq2SRAExMbG4ssvv8T3339vlh8E6yMIgtls+weAp59+GqdPn0ZWVpbuKzg4GH/5y1+QlZUFS0tLU0es4+7duzh37hxcXFxMHUXnySefrHP72ZycHHh4eJgoUePWr1+PTp06YcSIEaaOUkd5eTksLPQvm5aWlrodAeamQ4cOcHFxgVqtRlpaGkaNGmXqSHV07doVzs7OeteeiooKHDx4kNeeFqr9gJCbm4tvv/0WSqXS1JGaxdyuPZMmTcLPP/+sd+1xdXXFm2++ibS0NFPHa1BRURGuXr1qNtcfiUSCfv36tZnrz2effYa+ffuaXX+zyspKVFZWtplrj729PTp27Ijc3FxkZGQY9brT1N+/zeF60xY+IzQnozlcbx70e2nMa05TGdvq9cYQeHyPdGbPno1JkyYhODgYAwYMwLp163DlyhW8+uqrpo6mU1ZWhry8PN3jS5cuISsrC46OjnB3dzdhst9Nnz4dmzZtwldffQVbW1vdv8jY29tDJpOZON09b7/9Np599lm4ubmhtLQUmzdvRnp6Or755htTR9OxtbWtcy68Q4cOUCqVZnP2/o033kBERATc3d1RUFCARYsWoaSkxKyOcs2aNQsDBw7E4sWLMW7cOJw4cQLr1q3DunXrTB2tjpqaGqxfvx4xMTGwsjK/y1NERATef/99uLu7IzAwEKdOnUJ8fDxefPFFU0fTk5aWBkEQ4Ofnh7y8PLz55pvw8/PD1KlTTZKnqZ/bM2fOxOLFi+Hj4wMfHx8sXrwYcrkcEyZMMJuMKpUKV65cwW+//QYAug/azs7Oun99N2VGV1dXjB07Fj/99BN2796N6upq3bXH0dEREonE5BmVSiXef/99PPfcc3BxcUFRURE++eQTXLt2DVFRUUbJ15yc7u7udT5gicViODs7w8/PzywyOjo6YuHChRgzZgxcXFxw+fJlvP3223BycsLzzz9vFhnd3d3x5ptvYvz48RgyZAj+9Kc/4ZtvvsGuXbuQnp5uNhkBoKSkBCkpKfjnP/9ptFwtyfjUU0/hzTffhEwmg4eHBw4ePIikpCTEx8ebTcaUlBR07NgR7u7uOH36NF577TVERkbWuYGSITX192+RSGTy601zPiOY+nrTVMaqqiqzuN40lfPOnTsmv+Y0lVGpVJrF9cYsGPdmf2TuEhISBA8PD0EikQiPP/54o7fVNIUDBw4IAOp8xcTEmDqaTn35AAjr1683dTSdF198Uff73LFjR+Hpp58W9u3bZ+pYTXrqqaeE1157zdQxdMaPHy+4uLgIYrFYcHV1FUaPHi2cPXvW1LHq2LVrl9CjRw/B2tpa8Pf3F9atW2fqSPVKS0sTAAgXLlwwdZR6lZSUCK+99prg7u4uSKVSoVu3bsK8efOEu3fvmjqani1btgjdunUTJBKJ4OzsLEyfPl0oLi42WZ6mfm7X1NQICxYsEJydnQVra2thyJAhwunTp80q4/r16+t9fsGCBWaRsfbW4fV9HThwwCwyajQa4fnnnxdcXV0FiUQiuLi4CM8995xw4sQJo+VrTs76mOIW3Y1lLC8vF8LCwoSOHTsKYrFYcHd3F2JiYoQrV66YTcZan332meDt7S1IpVKhd+/ews6dO80u47/+9S9BJpOZ7OdkUxlv3LghTJkyRXB1dRWkUqng5+cn/POf/xRqamrMJuOKFSuELl266P5/fOedd4x+bWzO379Nfb1pTkZTX2+aymgu15umcprDNedBPhOa4npjDkSCIAj3F6qIiIiIiIiIiIgMiT2liIiIiIiIiIjI6FiUIiIiIiIiIiIio2NRioiIiIiIiIiIjI5FKSIiIiIiIiIiMjoWpYiIiIiIiIiIyOhYlCIiIiIiIiIiIqNjUYqIiIiIiIiIiIyORSkiIiIiIiIiIjI6FqWIiIiIqNWlp6dDJBJh4cKFpo5CREREZopFKSIiImrzLl++DJFIpPclkUjg5uaGCRMm4OeffzZ1RIMRiUQIDQ1t0Zra79ewYcMME4qIiIioGaxMHYCIiIiotXh5eWHixIkAgLKyMhw7dgzJycn48ssv8f3332PgwIEmTkhEREREtViUIiIionbD29u7znGxd955B++//z7mzZuHAwcOmCYYEREREdXB43tERETUrs2YMQMAcPLkSd1Y7ZG369evY8qUKXB2doaFhQXS09N1czZu3IgnnngCNjY2sLGxwRNPPIGNGzfWef0/9k46cuQI/vSnP8HW1hYdO3bE3/72N2g0GgDAN998gyeffBIdOnRA586dMWfOHFRXV+u91oYNGyASibBhwwbs2LED/fr1g1wuh7OzM/7f//t/UKvVdX5dADh48KDe0cUNGzY80PdqypQpEIlEuHz5Mj755BMEBARAKpXCw8MD7777Lmpqauqs0Wg0mDt3Ltzc3CCVStGjRw8kJiY2+utcunQJL7/8Mtzd3WFtbQ0XFxdMmTIFv/76q26OVqtFz549IRaLcezYsTq/Zvfu3SGRSPR+X4mIiKht4U4pIiIiatdqCzf3KyoqwoABA+Do6Ijx48ejoqICdnZ2AIBZs2Zh+fLleOyxx/DSSy9BJBJh+/btmDJlCrKzsxEfH1/n9Y4fP46lS5ciPDwcf/3rX3HgwAGsWbMGJSUlGDVqFGJiYvDcc88hJCQEe/bswYcffgg7OzvMmzevzmtt27YN+/fvR1RUFIYOHYqDBw9i7dq1OHr0KI4ePQqZTAZPT08sWLAA7777Ljw8PDBlyhTd+qCgoIf6nr355ptIT0/HyJEjERYWhp07d2LhwoWoqKjA+++/r5tXU1OD5557Dt9++y169uyJCRMmoKioCLNmzcKf/vSnel/7+PHjCA8Px507dxAREQFvb29cvnwZ//nPf/D111/j6NGj6NatG6RSKZKTk9GvXz9MmDABWVlZer8/586dwwcffIB+/fo91HslIiIiExKIiIiI2rhLly4JAITw8PA6z82bN08AIISGhurGAAgAhKlTpwpVVVV683/44QcBgBAQECAUFxfrxouLiwV/f38BgHDo0CHd+IEDB3Svt3PnTt14RUWF0KtXL0EkEglOTk7CiRMndM+VlJQInTp1EpRKpVBZWakbX79+ve61vv32W71cU6dOFQAI7733nt44AOGpp55q5nfqnoa+XzExMQIAoWvXrsJvv/2mG79165agUCgEW1tb4e7du3XyDhs2TO/7+PPPPwsSiUQAICxYsEDve+Lp6SnY2toKWVlZer/2oUOHBEtLS2HkyJF646tXrxYACBMmTBAEQRB27twpABD+9Kc/CdXV1S1630RERGReeHyPiIiI2o28vDwsXLgQCxcuxBtvvIFBgwbh/fffh1QqxeLFi/XmSiQSfPjhh7C0tNQbrz36tnDhQtjb2+vG7e3tsWDBAr05fxQaGopRo0bpHovFYowdOxaCICAiIkJvR4+trS1GjhyJoqIiXLt2rc5rPfPMM3j66af1xhYtWgSxWFzvEcLWNn/+fLi4uOgeOzk5YdSoUSgtLcWFCxd040lJSQCA999/X+/72LNnT0yaNKnO6+7evRuXL1/G3//+d/Tu3VvvuUGDBmHUqFHYu3cvSkpKdOPTp09HREQENm3ahA8//BAvvfQSHB0dkZSUBAsL/lWWiIioLePxPSIiImo3Ll68iHfffRfAvaJQ586dMWHCBMydOxc9e/bUm9u1a1c4OTnVeY1Tp04BuFdkul/tWFZWVp3n+vTpU2estrBT33G62ueuX78OT09PvecGDx5cZ76rqyu8vLxw/vx5lJaWwtbWts6c1vL444/XGevSpQsAoLi4WDeWnZ0NuVxe7/zBgwfjs88+0xur7Q11/vz5Og3pAeDmzZuoqalBTk4OgoODdeOff/45evXqhTlz5gAAtm/frstDREREbReLUkRERNRuhIeH45tvvmnW3M6dO9c7XlJSAgsLC3Ts2LHeNRYWFrh9+3ad52r7Hf2RlZVVk89VVlbWea5Tp04NZj5//jxKSkoMWpT64w6xWrV5/9ic/fbt23Bzc6v3Ner7/qpUKgDAf/7zn0Z//Tt37ug9dnJywuDBg7F161Z4eHjgueeea/wNEBERUZvAPc9ERET0SGqoAbqdnR1qampw69atOs8VFBSgpqam3iJTayooKKh3PD8/X5fRHNjb2zeZ9Y9qc+/atQuCIDT49dRTT+mtS0lJwdatW6FUKvHrr7/qjlESERFR28aiFBEREdEf1B7DS09Pr/PcwYMHATz83e2acujQoTpjv/32Gy5evAgvLy+9XVIWFhZ6u5eMqXfv3igvL8dPP/1U57n63kNISAgA4OjRo83+Na5cuYJXXnkFnTp1QlZWFoKDg7FkyRLd7wURERG1XSxKEREREf1BTEwMAODdd9/Va7hdUlKi61dVO8dQ9u/fj++++05v7J133kFlZWWdX9vR0bHeZunGUNvMfN68eXqFsdOnT+Pf//53nfmjRo2Cu7s74uPj8cMPP9R5vrKyEocPH9Y9rqmpwcSJE1FcXIwNGzagS5cu2LRpE2QyGSZNmgS1Wm2Ad0VERETGwp5SRERERH8wZMgQzJgxA6tWrUKPHj0wZswYCIKAL7/8ElevXkVcXByGDBli0AwjRozA8OHDERUVBTc3Nxw8eBBHjx5F79698cYbb+jN/fOf/4ytW7di7Nix6NOnDywtLTFixIg6jd0NISYmBps2bcI333yDPn364Nlnn4VKpUJycjLCwsKwe/duvfnW1tbYtm0bnn32WTz11FN4+umn0aNHDwD3dkQdOnQISqUS58+fB3Dvrn6HDh1CXFwcnn32WQCAj48PVq5ciZdeegmvvPIKUlJSDP4+iYiIyDBYlCIiIiK6z8qVK9GnTx+sWbMG69atAwAEBgbi3XffxdSpUw3+648dOxYvvfQS3n//fWzfvh12dnb461//isWLF0Mmk+nNXbFiBQDg+++/x44dO1BTUwNnZ2ejFKUsLCzw1Vdf4d1338V//vMfrFixAl5eXoiPj4evr2+dohQA9OvXD9nZ2fjoo4+wd+9eHD58GNbW1njssccQGRmJ6OhoAPfu1Pfee++hR48eWLp0qd5rvPjii/j666+xbds2fPrpp3j55ZcN/l6JiIio9YkEQRBMHYKIiIiIgA0bNmDq1KlYv349pkyZYuo4RERERAbFnlJERERERERERGR0LEoREREREREREZHRsShFRERERERERERGx55SRERERERERERkdNwpRURERERERERERseiFBERERERERERGR2LUkREREREREREZHQsShERERERERERkdGxKEVEREREREREREbHohQRERERERERERkdi1JERERERERERGR0LEoREREREREREZHRsShFRERERERERERG9/8BhlMwEGlFWK8AAAAASUVORK5CYII=",
      "text/plain": [
       "<Figure size 1200x600 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "image/png": "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FBRACAFbW1ts2rRJWv68efOwfPlyPH78GMOGDYORkREuXryI6tWrY/z48fjoo4/g4OAAhUKBPn36SO/3gIAAREVFwdHREbq6umjZsqXay6vqaKqHK1euSF+cKiwshIeHh3SP3f379zFq1Cjk5+dDCIG6detKB4fS6iE4OBhffvkl8vPzkZeXh6+++kq6rUbbOgKQDrz169eXtW6apKSkaNwPxWtgzJgxuH79OpydnWFgYAALCwuV2y409Qk3btzARx99BIVCgfz8fHh4eODnn38GUHQCoXfv3tIXLqpXr469e/fKuuKibfto6xNmzJiB0aNHw9HREQqFAg4ODtJ6HD9+HIsXL1ap5WnTppW6joDmfg/Q3OcC2mtg2LBhSElJga6uLsqVK4edO3dKXxCaOnUqoqOjoaenB11dXSxfvlz6kLp8+XKEh4dDX18fhYWFGD9+vBRCSiPn+KBtO2l7r2irBW0KCgowbNgwPH/+HLq6uihfvjxCQkKkD/OTJ0/G7du3oa+vLz3qzN7eHkBR0Pzss8+gr6+PihUrIjg4WNr22rbT8+fP0apVK+jq6qKgoADjxo1D9+7dpTZ16NABhYWFyM3NxeDBg6U+RlufBwCrV6/GsGHDMHfuXFSqVEnlHt/Vq1djy5YtEELA3t4eoaGh0ntB2zoCmvuDv1ML6iiEjK8Zx8TEoFGjRtixY4fGSzivq2PHjli2bNnf7vD+Fzk7O+PcuXMlLonLtXfvXkyZMgVBQUEqz/yi/6YtW7Zg0KBBrAcCwHogVawHKk6Z96Kjo1We0foq/sIMEREREcn2zi5bl+bV+4vo/6i7+ZeIiIjofcAzj0REREQkG8MjEREREcnG8EhEREREsjE8EhEREZFsDI9EREREJBvDIxERERHJxvBIRERERLIxPBIRERGRbAyPRERERCQbwyMRERERycbwSERERESyvdZvW9+5c+ddtYPeogcPHgAA4uPjERMTU8atobIWHx8v/Zf1QKwHKo71QMVdv35d1nQKIYQobaLExETY29sjKyvrbzeMiIiIiN5PxsbGuH79OurUqaNxGlnhESgKkE+ePHlrjaN3KycnB4aGhmXdDHpPsB6oONYDFcd6oOJMTU21BkfgNcIjERERERG/MENEREREsjE8EhEREZFsDI9EREREJBvDIxERERHJxvBIRERERLIxPBIRERGRbAyPRERERCQbwyMRERERycbwSERERESyMTwSERERkWwMj0REREQkG8MjEREREcnG8EhEREREsjE8EhEREZFsDI9EREREJBvDIxERERHJxvBIRERERLIxPBIRERGRbAyPRERERCQbwyMRERERycbwSERERESyMTwSERERkWwMj0REREQkG8MjEREREcnG8EhEREREsjE8EhEREZFsDI9EREREJBvDIxERERHJxvBIRERERLIxPBIRERGRbAyPRERERCQbwyMRERERycbwSERERESyMTwSERERkWwMj0REREQkG8MjEREREcnG8EhEREREsjE8EhEREZFsDI9EREREJBvDIxERERHJxvBIRERERLIxPBIRERGRbAyPRERERCQbwyMRERERycbwSERERESyMTwSERERkWwMj0REREQkG8MjEREREcnG8EhEREREsjE8EhEREZFsDI9EREREJBvDIxERERHJxvBIRERERLIxPBIRERGRbAyPRERERCQbwyMRERERycbwSERERESyMTwSERERkWwMj0REREQkG8MjEREREcnG8EhEREREsjE8EhEREZFsDI9EREREJBvDIxERERHJxvBIRERERLIxPBIRERGRbAyPRERERCQbwyMRERERycbwSERERESyMTwSERERkWwMj0REREQkG8MjEREREcnG8EhEREREsjE8EhEREZFsDI9EREREJBvDIxERERHJxvBIRERERLIxPBIRERGRbAyPRERERCQbwyMRERERycbwSERERESyMTwSERERkWwMj0REREQkG8MjEREREcnG8EhEREREsjE8EhEREZFsDI9EREREJBvDIxERERHJxvBIRERERLIxPBIRERGRbAyPRERERCQbwyMRERERycbwSERERESyMTwSERERkWwMj0REREQkG8MjEREREcnG8EhEREREsjE8EhEREZFsDI9EREREJBvDIxERERHJxvBIRERERLIxPBIRERGRbAyPRERERCQbwyMRERERycbwSERERESyMTwSERERkWwMj0REREQkG8MjEREREcnG8EhEREREsjE8EhEREZFsDI9EREREJBvDIxERERHJxvBIRERERLIxPBIRERGRbAyPRERERCQbwyMRERERyfb/ALmmt/jkPX/DAAAAAElFTkSuQmCC",
      "text/plain": [
       "<Figure size 800x400 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "raws = np.array(all_raws)\n",
    "updates = np.array(all_updates)\n",
    "\n",
    "# 计算最大值、最小值和中位数\n",
    "max_raw = np.max(raws)\n",
    "min_raw = np.min(raws)\n",
    "median_raw = np.median(raws)\n",
    "\n",
    "max_update = np.max(updates)\n",
    "min_update = np.min(updates)\n",
    "median_update = np.median(updates)\n",
    "\n",
    "raw_scores = all_raws\n",
    "update_scores = all_updates\n",
    "\n",
    "# 计算差值\n",
    "diff_scores = np.array(update_scores) - np.array(raw_scores)\n",
    "\n",
    "# 绘制图表\n",
    "fig, ax = plt.subplots(figsize=(12, 6))\n",
    "\n",
    "# 绘制原始分数和更新后的分数\n",
    "ax.scatter(range(len(raw_scores)), raw_scores, marker='o', s=100, color='tab:blue', label='Raw Score', edgecolor='black', linewidth=1)\n",
    "ax.scatter(range(len(update_scores)), update_scores, marker='o', s=100, color='tab:orange', label='Updated Score', edgecolor='black', linewidth=1)\n",
    "\n",
    "# 添加柱子\n",
    "for i in range(len(raw_prompt)):\n",
    "    height = update_scores[i] - raw_scores[i]\n",
    "    ax.bar(i, height, bottom=raw_scores[i], color='gray', alpha=0.5, width=0.4)\n",
    "    # 在柱子中间显示具体差值\n",
    "    ax.text(i, raw_scores[i] + height/2, f'{height:.1f}', ha='center', va='center', color='black', fontsize=10)\n",
    "\n",
    "# 设置图表标题和轴标签\n",
    "ax.set_title('Raw vs Updated', fontsize=16)\n",
    "ax.set_xlabel('Prompt Index', fontsize=14)\n",
    "ax.set_ylabel('Score', fontsize=14)\n",
    "\n",
    "# 设置X轴刻度标签为序号\n",
    "ax.set_xticks(range(len(raw_prompt)))\n",
    "\n",
    "# 添加图例\n",
    "ax.legend()\n",
    "\n",
    "plt.tight_layout()\n",
    "plt.show()\n",
    "\n",
    "# 创建一个 3x3 的表格\n",
    "fig, ax = plt.subplots(figsize=(8, 4))\n",
    "ax.axis('off')  # 隐藏坐标轴\n",
    "\n",
    "# 设置表格的行列数\n",
    "rows = 2\n",
    "cols = 4\n",
    "\n",
    "# 创建数据\n",
    "data = [[raw_score, max_raw, min_raw,median_raw]   ,\n",
    "        [update_score, max_update, min_update,median_update]]\n",
    "\n",
    "# 创建表头\n",
    "row_labels = ['Raw Prompt', 'Updated Prompt']\n",
    "col_labels = ['Avg Score', 'Max', 'Min','Median']\n",
    "\n",
    "# 绘制表格\n",
    "the_table = ax.table(cellText=data,\n",
    "                     rowLabels=row_labels,\n",
    "                     colLabels=col_labels,\n",
    "                     loc='center',\n",
    "                     cellLoc='center',\n",
    "                     rowColours=['lightgray'] * rows,  # 设置行颜色\n",
    "                     colColours=['lightgray'] * cols,  # 设置列颜色\n",
    "                     cellColours=[['none'] * cols] * rows)  # 设置单元格颜色\n",
    "\n",
    "# 添加表格标题\n",
    "ax.set_title('Aesthestics Score Evaluation Result', fontsize=16, pad=20)\n",
    "\n",
    "# 调整表格大小\n",
    "the_table.auto_set_font_size(False)\n",
    "the_table.set_fontsize(8)\n",
    "the_table.scale(1.5, 2)  # 调整表格大小\n",
    "\n",
    "# 显示图像\n",
    "plt.tight_layout()\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 通过Pick Score评价优化方案的有效性\n",
    "* Pick score用于评价图像和提示词的相似度，保证生成图片的有效性\n",
    "* 该指标的计算方法是通过对输入提示词的长度、词频、主题相关性和生成效果的综合评估，得出提示词的有效性评分。\n",
    "* Pick Score的得分经过了softmax处理，区间在0-1之间，数值越大，关联程度越高。\n",
    "* 原论文链接：https://arxiv.org/abs/2305.01569\n",
    "* 由于Pick Score模型限制，此处使用的prompt为英文原版prompt。"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 26,
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "`text_config_dict` is provided which will be used to initialize `CLIPTextConfig`. The value `text_config[\"id2label\"]` will be overriden.\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Prompt: Twilight Barn Painting, Probabilities: [0.39845356345176697, 0.6015465259552002]\n",
      "Prompt: Shady Green Trees and Blooming Flowers, Probabilities: [0.2977561950683594, 0.7022437453269958]\n",
      "Prompt: A Noble Corgi, Probabilities: [0.16145963966846466, 0.8385403752326965]\n",
      "Prompt: Kung Pao Chicken, Probabilities: [0.2974173426628113, 0.7025826573371887]\n",
      "Prompt: A Room Filled with Toy Robots, Probabilities: [0.32238972187042236, 0.6776102781295776]\n",
      "Prompt: A Jungle Temple with Many Statues Inside, Probabilities: [0.3444701135158539, 0.655529797077179]\n",
      "Prompt: Black and White Photo of Two Horses, Probabilities: [0.783403217792511, 0.21659676730632782]\n",
      "Prompt: A Grand Palace with the Emperor in the Center, Ministers on Brooms Paying Homage, Some Reporting Work, the Entire Hall Gleaming with Gold, Probabilities: [0.4876033365726471, 0.5123966336250305]\n",
      "Prompt: A Cute Kitten, Probabilities: [0.5886120200157166, 0.41138795018196106]\n",
      "Prompt: A Gothic Building, Probabilities: [0.47186294198036194, 0.5281369686126709]\n",
      "Prompt: Two Brothers with Deep Bonds, Probabilities: [0.1856713443994522, 0.814328670501709]\n",
      "Prompt: A Snail, Probabilities: [0.7101601958274841, 0.28983986377716064]\n",
      "Prompt: A High School Student Studying Late at Night at a Computer Desk, Probabilities: [0.48027679324150085, 0.5197231769561768]\n",
      "Prompt: Coffee-Colored Sky, Green Lake, Blue Grass, Probabilities: [0.444215327501297, 0.5557846426963806]\n",
      "Prompt: Sacred Pyramid with a Sphinx at the Entrance, Probabilities: [0.5698661804199219, 0.43013378977775574]\n",
      "Prompt: Two Meerkats in the Wild with a Hot Air Balloon, Probabilities: [0.6993129849433899, 0.3006870150566101]\n",
      "Prompt: A Painting of a Girl in a White Dress Dancing in a Daisy Field, Probabilities: [0.38877981901168823, 0.6112201809883118]\n",
      "Prompt: Spring Arrives, Everything Awakens, Probabilities: [0.2924484610557556, 0.7075515389442444]\n",
      "Prompt: A Futuristic Spaceship with Flames Bursting, Probabilities: [0.32964077591896057, 0.6703592538833618]\n",
      "Prompt: A Dog, a Cat, and Jesus Caring for All Creatures, Including People and Plants, Probabilities: [0.63358074426651, 0.3664192259311676]\n",
      "Prompt: Stir-Fried Noodles with Minced Pork, Probabilities: [0.5302764177322388, 0.46972358226776123]\n",
      "Prompt: Spicy Sliced Beef and Tripe, Probabilities: [0.5834560394287109, 0.41654399037361145]\n",
      "Prompt: A Phoenix Flying Over a Mountain, Probabilities: [0.31403863430023193, 0.6859613656997681]\n",
      "Prompt: Robot Battle, Probabilities: [0.5716444849967957, 0.42835554480552673]\n",
      "Prompt: A Bug's Life, Probabilities: [0.611375629901886, 0.388624370098114]\n"
     ]
    }
   ],
   "source": [
    "# 加载模型和处理器\n",
    "device = \"cpu\"\n",
    "processor_name_or_path = \"laion/CLIP-ViT-H-14-laion2B-s32B-b79K\"\n",
    "model_pretrained_name_or_path = \"yuvalkirstain/PickScore_v1\"\n",
    "\n",
    "processor = AutoProcessor.from_pretrained(processor_name_or_path)\n",
    "model = AutoModel.from_pretrained(model_pretrained_name_or_path).eval().to(device)\n",
    "\n",
    "# 获取原始图像文件路径\n",
    "raw_image_paths = sorted(glob(os.path.join(raw_folder, '*.png')))\n",
    "update_image_paths = sorted(glob(os.path.join(update_folder, '*.png')))\n",
    "\n",
    "pickscore_results = []\n",
    "# 循环计算每个 prompt 的概率\n",
    "for i, prompt in enumerate(raw_prompt_eng):\n",
    "    #raw_image_path = raw_image_paths[i]\n",
    "    image = [Image.open(raw_image_paths[i]),Image.open(update_image_paths[i])]\n",
    "    probs = calc_probs(prompt, image)\n",
    "    pickscore_results.append(probs)\n",
    "    print(f'Prompt: {prompt}, Probabilities: {probs}')"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "* 从上面的分数可以看到，还是有一些prompt在优化后反而在Pick Score上的评分低于原始prompt的评分，这是因为Pick Score模型本身存在一些局限性。下面我们挑出一个最大负例进行分析：\n",
    "* 在输入prompt为“两匹马的黑白照片”这一组图片中，优化前的分数为0.78，优化后的仅有0.22。如下图所示，左边对应原始prompt的生成图片，右边对应优化prompt的生成图片：\n",
    "    * 可以明显看出，左边的图片实际上有很大一部分是无法识别的内容，而右边的显然看上去更加清晰，也更符合用户的预期。因此，模型本身的局限性是会导致对于图片评估的误判的。｜\n"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "<div style=\"display: flex; align-items: center; gap: 20px;\">\n",
    "    <img src=\"img/horse_raw.png\" alt=\"Raw Image\" style=\"width: 50%;\"/>\n",
    "    <img src=\"img/horse_update.png\" alt=\"Updated Image\" style=\"width: 50%;\"/>\n",
    "</div>\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 63,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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jhyJRYsWwcnJCQCQkJDwUrdvaMhD55+mbt262L9/Pzp16gQAiIqKgouLSzmXisqTvpho37492rdvX57Fo5fkrzj2e/Xq9TKK9q/FT0AqN1FRUXj33Xexfv167NixA0FBQVi4cCEePHiAzz77DACQkZGBTp06YcuWLahSpQomT56MU6dOoXr16nBwcMDDhw/x/fff62w3PT0d6enpqF27tjKtYcOGyv+Tk5Mxbdo0XLt2DUDBh8jw4cNx//59fP3117hx4wYAoF+/fnjjjTcAFHy77dmzJ44fP47atWvjm2++wZw5c3Dy5Enk5OSgYcOGmDBhAqpWrfpXNhnpERQUhKioKHTq1AlpaWk4f/48AgICkJWVhT///BOTJ0/G06dPkZWVhe7du+Ptt99Gfn4+hg4dipYtW2LgwIFITEzEoEGDsGTJEtjY2JR3legF6YuJTZs24eDBg/j+++8RHR2NadOmwcPDA2fOnEFeXh4mT57MLx//JfT1MwAsX74cO3bsQF5eHmrWrImJEyeibt26SEtLw8SJExEfH4+6deuievXqqFWrFoCCs5AZGRn4+OOPSxw/AGD8+PGoWLEirl27hjt37qBx48aYMWMGjIyMyq09/g68bE3l4sqVK7hz5w78/PwQFBSEjRs3AgBef/117NixQ7kEsWPHDjRv3hzVq1dHREQE7ty5g02bNmHx4sWIi4srdtvVqlVDnz590LVrV7z//vtYsGCBkigCwKeffgo3Nzds3LgRGzduRGhoKABg6tSpaNiwIaKiorB48WIsXLgQFy5cUNa7ffs2lixZgmnTpmH58uWoVKkS1q5di8jISDRq1Ajz5s37i1qL1PDy8sLNmzeRnJyMbdu2oXPnzqhQoQIAwNLSEosWLUJERATCw8OxY8cO/PHHHzAwMMCUKVOwdu1aREdHY/To0Rg9ejQTx38JfTHxrPj4eAQFBWHDhg3o168fZs+e/TeXlp6Xvn7eunUrrl27htWrVyMiIgJdunTB5MmTAQALFixA5cqVsXnzZkydOhWnT58udvsljR9aFy9exJw5c7B582Y8ePAAu3bt+usrXc6YPFK52LhxI7p3744KFSqgTZs2uHnzJq5evYq6devC0dER+/btAwBs2rQJgYGBAIDo6Gh069YNhoaGMDExQUBAQInbHzt2LKKiouDv74/r16+jV69eiImJQUZG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jv5aWVlZMDExKe9i0D8E44EKYzxQYYwHKqxWrVp6E0egDMkjEREREREfmCEiIiIi1Zg8EhEREZFqTB6JiIiISDUmj0RERESkGpNHIiIiIlKNySMRERERqcbkkYiIiIhUY/JIRERERKoxeSQiIiIi1Zg8EhEREZFqTB6JiIiISDUmj0RERESkGpNHIiIiIlKNySMRERERqcbkkYiIiIhUY/JIRERERKoxeSQiIiIi1Zg8EhEREZFqTB6JiIiISDUmj0RERESkGpNHIiIiIlKNySMRERERqcbkkYiIiIhUY/JIRERERKoxeSQiIiIi1Zg8EhEREZFqTB6JiIiISDUmj0RERESkGpNHIiIiIlKNySMRERERqcbkkYiIiIhUY/JIRERERKoxeSQiIiIi1Zg8EhEREZFqTB6JiIiISDUmj0RERESkGpNHIiIiIlKNySMRERERqcbkkYiIiIhUY/JIRERERKoxeSQiIiIi1Zg8EhEREZFqTB6JiIiISDUmj0RERESkGpNHIiIiIlKNySMRERERqcbkkYiIiIhUY/JIRERERKoxeSQiIiIi1Zg8EhEREZFqTB6JiIiISDUmj0RERESkGpNHIiIiIlKNySMRERERqcbkkYiIiIhUY/JIRERERKoxeSQiIiIi1Zg8EhEREZFqTB6JiIiISDUmj0RERESkGpNHIiIiIlKNySMRERERqcbkkYiIiIhUY/JIRERERKoxeSQiIiIi1Zg8EhEREZFqTB6JiIiISDUmj0RERESkGpNHIiIiIlKNySMRERERqcbkkYiIiIhUY/JIRERERKoxeSQiIiIi1Zg8EhEREZFqTB6JiIiISDUmj0RERESkGpNHIiIiIlKNySMRERERqcbkkYiIiIhUY/JIRERERKoxeSQiIiIi1Zg8EhEREZFqTB6JiIiISDUmj0RERESkGpNHIiIiIlKNySMRERERqcbkkYiIiIhUY/JIRERERKoxeSQiIiIi1Zg8EhEREZFqTB6JiIiISDUmj0RERESkGpNHIiIiIlKNySMRERERqcbkkYiIiIhUY/JIRERERKoxeSQiIiIi1Zg8EhEREZFqTB6JiIiISDUmj0RERESkGpNHIiIiIlKNySMRERERqcbkkYiIiIhUY/JIRERERKoxeSQiIiIi1Zg8EhEREZFqTB6JiIiISDUmj0RERESkGpNHIiIiIlKNySMRERERqcbkkYiIiIhUY/JIRERERKoxeSQiIiIi1Zg8EhEREZFqTB6JiIiISDUmj0RERESk2v8BKNFTurZDUjsAAAAASUVORK5CYII=",
      "text/plain": [
       "<Figure size 800x400 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "import statistics\n",
    "\n",
    "results = pickscore_results  # 计算优化有效的结果数量\n",
    "#effective_count = sum(1 for result in results if result[1] > result[0])\n",
    "# 计算优化程度的平均值和中位数\n",
    "improvement_scores = [result[1] - result[0] for result in results if result[1] > result[0]]\n",
    "avg_improvement = statistics.mean(improvement_scores)\n",
    "median_improvement = statistics.median(improvement_scores)\n",
    "standeard_deviation = statistics.stdev(improvement_scores)\n",
    "\n",
    "# 计算优化前的均值\n",
    "before_mean = statistics.mean([result[0] for result in results])\n",
    "# 计算优化后的均值\n",
    "after_mean = statistics.mean([result[1] for result in results])\n",
    "before_median = statistics.median([result[0] for result in results])\n",
    "after_median = statistics.median([result[1] for result in results])\n",
    "before_max = max([result[0] for result in results])\n",
    "after_max = max([result[1] for result in results])\n",
    "before_min = min([result[0] for result in results])\n",
    "after_min = min([result[1] for result in results])\n",
    "# print(f\"优化前的均值: {before_mean}\")\n",
    "# print(f\"优化后的均值: {after_mean}\")\n",
    "# print(f\"优化程度的平均值: {avg_improvement}\")\n",
    "# print(f\"优化程度的中位数: {median_improvement}\")\n",
    "# print(f\"优化程度的标准差: {standeard_deviation}\")\n",
    "fig, ax = plt.subplots(figsize=(8, 4))\n",
    "ax.axis('off')  # 隐藏坐标轴\n",
    "\n",
    "# 设置表格的行列数\n",
    "rows = 2\n",
    "cols = 4\n",
    "\n",
    "# 创建数据\n",
    "data = [[before_mean, before_max, before_min, before_median]   ,\n",
    "        [after_mean, after_max, after_min, after_median]]\n",
    "\n",
    "# 创建表头\n",
    "row_labels = ['Raw Prompt', 'Updated Prompt']\n",
    "col_labels = ['Avg Score', 'Max', 'Min','Median']\n",
    "\n",
    "# 绘制表格\n",
    "the_table = ax.table(cellText=data,\n",
    "                     rowLabels=row_labels,\n",
    "                     colLabels=col_labels,\n",
    "                     loc='center',\n",
    "                     cellLoc='center',\n",
    "                     rowColours=['lightgray'] * rows,  # 设置行颜色\n",
    "                     colColours=['lightgray'] * cols,  # 设置列颜色\n",
    "                     cellColours=[['none'] * cols] * rows)  # 设置单元格颜色\n",
    "\n",
    "# 添加表格标题\n",
    "ax.set_title('Pick Score Evaluation Result', fontsize=16, pad=20)\n",
    "\n",
    "# 调整表格大小\n",
    "the_table.auto_set_font_size(False)\n",
    "the_table.set_fontsize(8)\n",
    "the_table.scale(1.5, 2)  # 调整表格大小\n",
    "\n",
    "# 显示图像\n",
    "plt.tight_layout()\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 总结\n",
    "* 在Aesthestics Score和Pick Score两个测试模型中，我们的方法均有出色的表现。这表明，轻量化的优化方法也可以有效地提升prompt的质量。"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "base",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.11.8"
  },
  "vscode": {
   "interpreter": {
    "hash": "58f7cb64c3a06383b7f18d2a11305edccbad427293a2b4afa7abe8bfc810d4bb"
   }
  }
 },
 "nbformat": 4,
 "nbformat_minor": 4
}
